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 |