40 lines
1.2 KiB
C++
40 lines
1.2 KiB
C++
|
// __ _____ _____ _____
|
||
|
// __| | __| | | | 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
|