16 using value_type = BasicJsonType;
19 : owned_value(std::move(
value))
26 json_ref(std::initializer_list<json_ref> init)
32 enable_if_t<std::is_constructible<value_type, Args...>
::value,
int> = 0 >
34 : owned_value(std::forward<Args>(args)...)
44 value_type moved_or_copied()
const
46 if (value_ref ==
nullptr)
48 return std::move(owned_value);
53 value_type
const& operator*()
const
55 return value_ref ? *value_ref : owned_value;
58 value_type
const* operator->()
const
64 mutable value_type owned_value =
nullptr;
65 value_type
const* value_ref =
nullptr;