diff --git a/include/boost/json/value.hpp b/include/boost/json/value.hpp index 1e1d8a95d..746118dac 100644 --- a/include/boost/json/value.hpp +++ b/include/boost/json/value.hpp @@ -413,7 +413,7 @@ class value object&& other, storage_ptr sp) : obj_( - other, + detail::move(other), detail::move(sp)) { } diff --git a/test/value.cpp b/test/value.cpp index 42b57af3d..19ba7da61 100644 --- a/test/value.cpp +++ b/test/value.cpp @@ -499,6 +499,13 @@ class value_test BOOST_TEST(jv.is_object()); BOOST_TEST(*jv.storage() == *sp); } + { + // verify moved from + object obj{{"a", 1}, {"b", 2}}; + BOOST_TEST(obj.capacity() > 0); + value jv(std::move(obj), {}); + BOOST_TEST(obj.capacity() == 0); + } } // value(array)