diff --git a/include/nlohmann/detail/input/lexer.hpp b/include/nlohmann/detail/input/lexer.hpp index 75001652..ea116093 100644 --- a/include/nlohmann/detail/input/lexer.hpp +++ b/include/nlohmann/detail/input/lexer.hpp @@ -1130,7 +1130,7 @@ scan_number_done: } /// return current string value (implicitly resets the token; useful only once) - std::string move_string() + std::string&& move_string() { return std::move(token_buffer); } diff --git a/include/nlohmann/json.hpp b/include/nlohmann/json.hpp index 91de782f..70f26747 100644 --- a/include/nlohmann/json.hpp +++ b/include/nlohmann/json.hpp @@ -953,7 +953,7 @@ class basic_json /// constructor for rvalue strings json_value(string_t&& value) { - string = create(std::move(value)); + string = create(std::forward < string_t&& > (value)); } /// constructor for objects @@ -965,7 +965,7 @@ class basic_json /// constructor for rvalue objects json_value(object_t&& value) { - object = create(std::move(value)); + object = create(std::forward < object_t&& > (value)); } /// constructor for arrays @@ -977,7 +977,7 @@ class basic_json /// constructor for rvalue arrays json_value(array_t&& value) { - array = create(std::move(value)); + array = create(std::forward < array_t&& > (value)); } void destroy(value_t t) noexcept diff --git a/single_include/nlohmann/json.hpp b/single_include/nlohmann/json.hpp index 5ef88282..afbfa076 100644 --- a/single_include/nlohmann/json.hpp +++ b/single_include/nlohmann/json.hpp @@ -2969,7 +2969,7 @@ scan_number_done: } /// return current string value (implicitly resets the token; useful only once) - std::string move_string() + std::string&& move_string() { return std::move(token_buffer); } @@ -10561,7 +10561,7 @@ class basic_json /// constructor for rvalue strings json_value(string_t&& value) { - string = create(std::move(value)); + string = create(std::forward < string_t&& > (value)); } /// constructor for objects @@ -10573,7 +10573,7 @@ class basic_json /// constructor for rvalue objects json_value(object_t&& value) { - object = create(std::move(value)); + object = create(std::forward < object_t&& > (value)); } /// constructor for arrays @@ -10585,7 +10585,7 @@ class basic_json /// constructor for rvalue arrays json_value(array_t&& value) { - array = create(std::move(value)); + array = create(std::forward < array_t&& > (value)); } void destroy(value_t t) noexcept