Templatize basic_json ctor from json_ref
This commit is contained in:
parent
4396a68d2d
commit
ec955f08b4
3 changed files with 34 additions and 8 deletions
|
@ -41,6 +41,19 @@ template<typename> struct is_basic_json : std::false_type {};
|
||||||
NLOHMANN_BASIC_JSON_TPL_DECLARATION
|
NLOHMANN_BASIC_JSON_TPL_DECLARATION
|
||||||
struct is_basic_json<NLOHMANN_BASIC_JSON_TPL> : std::true_type {};
|
struct is_basic_json<NLOHMANN_BASIC_JSON_TPL> : std::true_type {};
|
||||||
|
|
||||||
|
//////////////////////
|
||||||
|
// jspn_ref helpers //
|
||||||
|
//////////////////////
|
||||||
|
|
||||||
|
template <typename>
|
||||||
|
class json_ref;
|
||||||
|
|
||||||
|
template<typename>
|
||||||
|
struct is_json_ref : std::false_type {};
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
struct is_json_ref<json_ref<T>> : std::true_type {};
|
||||||
|
|
||||||
//////////////////////////
|
//////////////////////////
|
||||||
// aliases for detected //
|
// aliases for detected //
|
||||||
//////////////////////////
|
//////////////////////////
|
||||||
|
|
|
@ -1773,10 +1773,10 @@ class basic_json
|
||||||
// other constructors and destructor //
|
// other constructors and destructor //
|
||||||
///////////////////////////////////////
|
///////////////////////////////////////
|
||||||
|
|
||||||
/// @private
|
template <typename JsonRef,
|
||||||
basic_json(const detail::json_ref<basic_json>& ref)
|
detail::enable_if_t<detail::conjunction<detail::is_json_ref<JsonRef>,
|
||||||
: basic_json(ref.moved_or_copied())
|
std::is_same<typename JsonRef::value_type, basic_json>>::value, int> = 0 >
|
||||||
{}
|
basic_json(const JsonRef& ref) : basic_json(ref.moved_or_copied()) {}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@brief copy constructor
|
@brief copy constructor
|
||||||
|
|
|
@ -2794,6 +2794,19 @@ template<typename> struct is_basic_json : std::false_type {};
|
||||||
NLOHMANN_BASIC_JSON_TPL_DECLARATION
|
NLOHMANN_BASIC_JSON_TPL_DECLARATION
|
||||||
struct is_basic_json<NLOHMANN_BASIC_JSON_TPL> : std::true_type {};
|
struct is_basic_json<NLOHMANN_BASIC_JSON_TPL> : std::true_type {};
|
||||||
|
|
||||||
|
//////////////////////
|
||||||
|
// jspn_ref helpers //
|
||||||
|
//////////////////////
|
||||||
|
|
||||||
|
template <typename>
|
||||||
|
class json_ref;
|
||||||
|
|
||||||
|
template<typename>
|
||||||
|
struct is_json_ref : std::false_type {};
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
struct is_json_ref<json_ref<T>> : std::true_type {};
|
||||||
|
|
||||||
//////////////////////////
|
//////////////////////////
|
||||||
// aliases for detected //
|
// aliases for detected //
|
||||||
//////////////////////////
|
//////////////////////////
|
||||||
|
@ -16632,10 +16645,10 @@ class basic_json
|
||||||
// other constructors and destructor //
|
// other constructors and destructor //
|
||||||
///////////////////////////////////////
|
///////////////////////////////////////
|
||||||
|
|
||||||
/// @private
|
template <typename JsonRef,
|
||||||
basic_json(const detail::json_ref<basic_json>& ref)
|
detail::enable_if_t<detail::conjunction<detail::is_json_ref<JsonRef>,
|
||||||
: basic_json(ref.moved_or_copied())
|
std::is_same<typename JsonRef::value_type, basic_json>>::value, int> = 0 >
|
||||||
{}
|
basic_json(const JsonRef& ref) : basic_json(ref.moved_or_copied()) {}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@brief copy constructor
|
@brief copy constructor
|
||||||
|
|
Loading…
Reference in a new issue