mirror of
https://github.com/nlohmann/json.git
synced 2024-08-23 13:32:28 +02:00
Merge pull request #807 from theodelrieu/fix/805
add forwarding references to json_ref constructor
This commit is contained in:
commit
73d0095154
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue