11#include <initializer_list>
21template<
typename BasicJsonType>
43 : owned_value(
std::forward<Args>(args)...)
55 if (value_ref ==
nullptr)
57 return std::move(owned_value);
64 return value_ref ? *value_ref : owned_value;
#define WPI_JSON_NAMESPACE_END
Definition: abi_macros.h:59
#define WPI_JSON_NAMESPACE_BEGIN
Definition: abi_macros.h:53
Definition: json_ref.h:23
json_ref(json_ref &&) noexcept=default
json_ref(const value_type &value)
Definition: json_ref.h:31
json_ref(value_type &&value)
Definition: json_ref.h:27
value_type const & operator*() const
Definition: json_ref.h:62
value_type const * operator->() const
Definition: json_ref.h:67
json_ref(std::initializer_list< json_ref > init)
Definition: json_ref.h:35
json_ref(Args &&... args)
Definition: json_ref.h:42
value_type moved_or_copied() const
Definition: json_ref.h:53
BasicJsonType value_type
Definition: json_ref.h:25
detail namespace with internal helper functions
Definition: xchar.h:20
typename std::enable_if< B, T >::type enable_if_t
Definition: cpp_future.h:38