13#include <nlohmann/detail/meta/void_t.hpp>
15NLOHMANN_JSON_NAMESPACE_BEGIN
24 nonesuch(nonesuch
const&) =
delete;
25 nonesuch(nonesuch
const&&) =
delete;
26 void operator=(nonesuch
const&) =
delete;
27 void operator=(nonesuch&&) =
delete;
30template<
class Default,
32 template<
class...>
class Op,
36 using value_t = std::false_type;
40template<
class Default,
template<
class...>
class Op,
class... Args>
41struct detector<Default, void_t<Op<Args...>>, Op, Args...>
43 using value_t = std::true_type;
44 using type = Op<Args...>;
47template<
template<
class...>
class Op,
class... Args>
50template<
template<
class...>
class Op,
class... Args>
53template<
template<
class...>
class Op,
class... Args>
56template<
class Default,
template<
class...>
class Op,
class... Args>
57using detected_or =
detector<Default, void, Op, Args...>;
59template<
class Default,
template<
class...>
class Op,
class... Args>
60using detected_or_t =
typename detected_or<Default, Op, Args...>::type;
62template<
class Expected,
template<
class...>
class Op,
class... Args>
63using is_detected_exact = std::is_same<Expected, detected_t<Op, Args...>>;
65template<
class To,
template<
class...>
class Op,
class... Args>
66using is_detected_convertible =
67 std::is_convertible<detected_t<Op, Args...>, To>;
70NLOHMANN_JSON_NAMESPACE_END
detail namespace with internal helper functions
定义 from_json.hpp:43
value_t
the JSON type enumeration
定义 value_t.hpp:54