Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-17 09:03:24

0001 //     __ _____ _____ _____
0002 //  __|  |   __|     |   | |  JSON for Modern C++
0003 // |  |  |__   |  |  | | | |  version 3.11.3
0004 // |_____|_____|_____|_|___|  https://github.com/nlohmann/json
0005 //
0006 // SPDX-FileCopyrightText: 2013-2023 Niels Lohmann <https://nlohmann.me>
0007 // SPDX-License-Identifier: MIT
0008 
0009 #pragma once
0010 
0011 #include <type_traits> // conditional, is_same
0012 
0013 #include <nlohmann/detail/abi_macros.hpp>
0014 
0015 NLOHMANN_JSON_NAMESPACE_BEGIN
0016 namespace detail
0017 {
0018 
0019 /*!
0020 @brief Default base class of the @ref basic_json class.
0021 
0022 So that the correct implementations of the copy / move ctors / assign operators
0023 of @ref basic_json do not require complex case distinctions
0024 (no base class / custom base class used as customization point),
0025 @ref basic_json always has a base class.
0026 By default, this class is used because it is empty and thus has no effect
0027 on the behavior of @ref basic_json.
0028 */
0029 struct json_default_base {};
0030 
0031 template<class T>
0032 using json_base_class = typename std::conditional <
0033                         std::is_same<T, void>::value,
0034                         json_default_base,
0035                         T
0036                         >::type;
0037 
0038 }  // namespace detail
0039 NLOHMANN_JSON_NAMESPACE_END