| // __ _____ _____ _____ |
| // __| | __| | | | JSON for Modern C++ |
| // | | |__ | | | | | | version 3.11.3 |
| // |_____|_____|_____|_|___| https://github.com/nlohmann/json |
| // |
| // SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me> |
| // SPDX-License-Identifier: MIT |
| |
| #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 |