From 1e6df78ec2700231a980748fa442c7d87c083c05 Mon Sep 17 00:00:00 2001 From: mr-mocap <16119203+mr-mocap@users.noreply.github.com> Date: Sat, 19 Aug 2023 05:10:29 -0400 Subject: [PATCH] Tidy up some ConstRef<T> and Ref<T> constructor cases (#730) Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com> --- include/ftxui/util/ref.hpp | 11 ++++++----- src/ftxui/dom/canvas.cpp | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/include/ftxui/util/ref.hpp b/include/ftxui/util/ref.hpp index 1207af54..78714793 100644 --- a/include/ftxui/util/ref.hpp +++ b/include/ftxui/util/ref.hpp @@ -13,10 +13,11 @@ class ConstRef { public: ConstRef() = default; ConstRef(const ConstRef<T>&) = default; - ConstRef(const T& t) : variant_(t) {} + ConstRef(ConstRef<T>&&) = default; + ConstRef(T t) : variant_(std::move(t)) {} ConstRef(const T* t) : variant_(t) {} - // Make a "resetable" reference + // Make a "reseatable" reference ConstRef<T>& operator=(const ConstRef<T>&) = default; // Accessors: @@ -39,11 +40,11 @@ class Ref { public: Ref() = default; Ref(const Ref<T>&) = default; - Ref(const T& t) : variant_(t) {} - Ref(T&& t) : variant_(std::forward<T>(t)) {} + Ref(Ref<T>&&) = default; + Ref(T t) : variant_(std::move(t)) {} Ref(T* t) : variant_(t) {} - // Make a "resetable" reference + // Make a "reseatable" reference. Ref<T>& operator=(const Ref<T>&) = default; // Accessors: diff --git a/src/ftxui/dom/canvas.cpp b/src/ftxui/dom/canvas.cpp index f42efb66..f6501fd7 100644 --- a/src/ftxui/dom/canvas.cpp +++ b/src/ftxui/dom/canvas.cpp @@ -849,7 +849,7 @@ class CanvasNodeBase : public Node { Element canvas(ConstRef<Canvas> canvas) { class Impl : public CanvasNodeBase { public: - explicit Impl(ConstRef<Canvas> canvas) : canvas_(canvas) { + explicit Impl(ConstRef<Canvas> canvas) : canvas_(std::move(canvas)) { requirement_.min_x = (canvas_->width() + 1) / 2; requirement_.min_y = (canvas_->height() + 3) / 4; } -- GitLab