diff --git a/include/ftxui/util/ref.hpp b/include/ftxui/util/ref.hpp index 1207af542ce97718dc0c61f19f00a6c0d32bdbd7..78714793a8e3386ca67b76bd682abb4b853e7cd0 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 f42efb66d4e8a7d975ecdf7ec1c95a3a6b64fede..f6501fd7ddf34567890abd02c869bba0b2efe230 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; }