3 #include <initializer_list> 10 template<
typename BasicJsonType>
14 using value_type = BasicJsonType;
17 : owned_value(std::move(value)), value_ref(&owned_value), is_rvalue(
true)
21 : value_ref(const_cast<value_type*>(&value)), is_rvalue(
false)
24 json_ref(std::initializer_list<json_ref> init)
25 : owned_value(init), value_ref(&owned_value), is_rvalue(
true)
28 template<
class... Args>
30 : owned_value(std::forward<Args>(args)...), value_ref(&owned_value), is_rvalue(
true)
34 json_ref(json_ref&&) =
default;
35 json_ref(
const json_ref&) =
delete;
36 json_ref& operator=(
const json_ref&) =
delete;
38 value_type moved_or_copied()
const 42 return std::move(*value_ref);
47 value_type
const& operator*()
const 49 return *
static_cast<value_type const*
>(value_ref);
52 value_type
const* operator->()
const 54 return static_cast<value_type const*
>(value_ref);
58 mutable value_type owned_value =
nullptr;
59 value_type* value_ref =
nullptr;
namespace for Niels Lohmann
Definition: adl_serializer.hpp:8
Definition: json_ref.hpp:11