diff --git a/include/ftxui/screen/string.hpp b/include/ftxui/screen/string.hpp index 2d199bc..15849a4 100644 --- a/include/ftxui/screen/string.hpp +++ b/include/ftxui/screen/string.hpp @@ -21,8 +21,8 @@ int wstring_width_cjk(const std::wstring&); /// references toward a shared representation. class StringRef { public: - StringRef(std::wstring& ref); StringRef(std::wstring* ref); + StringRef(std::wstring ref); StringRef(const wchar_t* ref); StringRef(const char* ref); @@ -38,8 +38,8 @@ class StringRef { /// references toward shared representation. class ConstStringRef { public: - ConstStringRef(const std::wstring& ref); ConstStringRef(const std::wstring* ref); + ConstStringRef(std::wstring ref); ConstStringRef(const wchar_t* ref); ConstStringRef(const char* ref); diff --git a/src/ftxui/screen/string.cpp b/src/ftxui/screen/string.cpp index 7f13b6b..6b0ea92 100644 --- a/src/ftxui/screen/string.cpp +++ b/src/ftxui/screen/string.cpp @@ -25,8 +25,8 @@ std::wstring to_wstring(const std::string& s) { #pragma warning(pop) #endif -StringRef::StringRef(std::wstring& ref) : borrowed_(&ref) {} StringRef::StringRef(std::wstring* ref) : borrowed_(ref) {} +StringRef::StringRef(std::wstring ref) : owned_(std::move(ref)) {} StringRef::StringRef(const wchar_t* ref) : owned_(ref) {} StringRef::StringRef(const char* ref) : owned_(to_wstring(std::string(ref))) {} std::wstring& StringRef::operator*() { @@ -36,8 +36,8 @@ std::wstring* StringRef::operator->() { return borrowed_ ? borrowed_ : &owned_; } -ConstStringRef::ConstStringRef(const std::wstring& ref) : borrowed_(&ref) {} ConstStringRef::ConstStringRef(const std::wstring* ref) : borrowed_(ref) {} +ConstStringRef::ConstStringRef(std::wstring ref) : owned_(std::move(ref)) {} ConstStringRef::ConstStringRef(const wchar_t* ref) : owned_(ref) {} ConstStringRef::ConstStringRef(const char* ref) : owned_(to_wstring(std::string(ref))) {}