add forwarding references to json_ref constructor

fixes #805
parent 8e067c0c
......@@ -6789,7 +6789,7 @@ class json_ref
{}
template <class... Args>
json_ref(Args... args)
json_ref(Args&&... args)
: owned_value(std::forward<Args>(args)...),
value_ref(&owned_value),
is_rvalue(true)
......
......@@ -36,6 +36,22 @@ using nlohmann::json;
#include <list>
#include <cstdio>
namespace
{
struct nocopy
{
nocopy() = default;
nocopy(const nocopy &) = delete;
int val = 0;
friend void to_json(json& j, const nocopy& n)
{
j = {{"val", n.val}};
}
};
}
TEST_CASE("regression tests")
{
SECTION("issue #60 - Double quotation mark is not parsed correctly")
......@@ -1282,4 +1298,12 @@ TEST_CASE("regression tests")
}
}
*/
SECTION("issue #805 - copy constructor is used with std::initializer_list constructor.")
{
nocopy n;
json j;
j = {{"nocopy", n}};
CHECK(j["nocopy"]["val"] == 0);
}
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment