12345678910111213141516171819202122232425262728293031 |
- #pragma once
- #include <type_traits> // conditional, is_same
- #include <nlohmann/detail/abi_macros.hpp>
- NLOHMANN_JSON_NAMESPACE_BEGIN
- namespace detail
- {
- /*!
- @brief Default base class of the @ref basic_json class.
- So that the correct implementations of the copy / move ctors / assign operators
- of @ref basic_json do not require complex case distinctions
- (no base class / custom base class used as customization point),
- @ref basic_json always has a base class.
- By default, this class is used because it is empty and thus has no effect
- on the behavior of @ref basic_json.
- */
- struct json_default_base {};
- template<class T>
- using json_base_class = typename std::conditional <
- std::is_same<T, void>::value,
- json_default_base,
- T
- >::type;
- } // namespace detail
- NLOHMANN_JSON_NAMESPACE_END
|