Add versioned inline namespace

Add a versioned inline namespace to prevent ABI issues when linking code
using multiple library versions.
This commit is contained in:
Florian Albrechtskirchinger 2022-07-18 22:35:10 +02:00
parent e3095f636f
commit bfa5f9ac86
No known key found for this signature in database
GPG Key ID: 19618CE9B2D4BE6D
39 changed files with 340 additions and 62 deletions

View File

@ -18,6 +18,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
/// @sa https://json.nlohmann.me/api/adl_serializer/ /// @sa https://json.nlohmann.me/api/adl_serializer/
template<typename ValueType, typename> template<typename ValueType, typename>
@ -53,4 +55,5 @@ struct adl_serializer
::nlohmann::to_json(j, std::forward<TargetType>(val)); ::nlohmann::to_json(j, std::forward<TargetType>(val));
} }
}; };
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -14,6 +14,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
/// @brief an internal type for a backed binary type /// @brief an internal type for a backed binary type
/// @sa https://json.nlohmann.me/api/byte_container_with_subtype/ /// @sa https://json.nlohmann.me/api/byte_container_with_subtype/
@ -99,4 +101,5 @@ class byte_container_with_subtype : public BinaryType
bool m_has_subtype = false; bool m_has_subtype = false;
}; };
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -30,20 +30,34 @@
#if JSON_HAS_EXPERIMENTAL_FILESYSTEM #if JSON_HAS_EXPERIMENTAL_FILESYSTEM
#include <experimental/filesystem> #include <experimental/filesystem>
namespace nlohmann::detail namespace nlohmann
{
inline namespace json_v3_10_5
{
namespace detail
{ {
namespace std_fs = std::experimental::filesystem; namespace std_fs = std::experimental::filesystem;
} // namespace nlohmann::detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann
#elif JSON_HAS_FILESYSTEM #elif JSON_HAS_FILESYSTEM
#include <filesystem> #include <filesystem>
namespace nlohmann::detail namespace nlohmann
{
inline namespace json_v3_10_5
{
namespace detail
{ {
namespace std_fs = std::filesystem; namespace std_fs = std::filesystem;
} // namespace nlohmann::detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann
#endif #endif
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
template<typename BasicJsonType> template<typename BasicJsonType>
@ -505,4 +519,5 @@ JSON_INLINE_VARIABLE constexpr const auto& from_json = // NOLINT(misc-definition
#ifndef JSON_HAS_CPP_17 #ifndef JSON_HAS_CPP_17
} // namespace } // namespace
#endif #endif
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -20,6 +20,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
@ -1116,4 +1118,5 @@ char* to_chars(char* first, const char* last, FloatType value)
} }
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -25,20 +25,34 @@
#if JSON_HAS_EXPERIMENTAL_FILESYSTEM #if JSON_HAS_EXPERIMENTAL_FILESYSTEM
#include <experimental/filesystem> #include <experimental/filesystem>
namespace nlohmann::detail namespace nlohmann
{
inline namespace json_v3_10_5
{
namespace detail
{ {
namespace std_fs = std::experimental::filesystem; namespace std_fs = std::experimental::filesystem;
} // namespace nlohmann::detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann
#elif JSON_HAS_FILESYSTEM #elif JSON_HAS_FILESYSTEM
#include <filesystem> #include <filesystem>
namespace nlohmann::detail namespace nlohmann
{
inline namespace json_v3_10_5
{
namespace detail
{ {
namespace std_fs = std::filesystem; namespace std_fs = std::filesystem;
} // namespace nlohmann::detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann
#endif #endif
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
////////////////// //////////////////
@ -449,4 +463,5 @@ JSON_INLINE_VARIABLE constexpr const auto& to_json = // NOLINT(misc-definitions-
#ifndef JSON_HAS_CPP_17 #ifndef JSON_HAS_CPP_17
} // namespace } // namespace
#endif #endif
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -25,8 +25,11 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
//////////////// ////////////////
// exceptions // // exceptions //
//////////////// ////////////////
@ -252,4 +255,5 @@ class other_error : public exception
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -17,6 +17,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
@ -127,4 +129,5 @@ std::size_t hash(const BasicJsonType& j)
} }
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -34,6 +34,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
@ -2970,4 +2972,5 @@ class binary_reader
json_sax_t* sax = nullptr; json_sax_t* sax = nullptr;
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -28,6 +28,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
/// the supported input formats /// the supported input formats
@ -490,4 +492,5 @@ class span_input_adapter
contiguous_bytes_input_adapter ia; contiguous_bytes_input_adapter ia;
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -19,6 +19,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
/*! /*!
@brief SAX interface @brief SAX interface
@ -726,4 +728,5 @@ class json_sax_acceptor
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -24,6 +24,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
/////////// ///////////
@ -1628,4 +1630,5 @@ scan_number_done:
const char_int_type decimal_point_char = '.'; const char_int_type decimal_point_char = '.';
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -26,6 +26,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
//////////// ////////////
@ -505,4 +507,5 @@ class parser
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -12,6 +12,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
/// struct to capture the start position of the current token /// struct to capture the start position of the current token
@ -32,4 +34,5 @@ struct position_t
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -12,6 +12,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
/*! /*!
@ -30,4 +32,5 @@ template<typename BasicJsonType> struct internal_iterator
primitive_iterator_t primitive_iterator {}; primitive_iterator_t primitive_iterator {};
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -21,6 +21,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
// forward declare, to be able to friend it later on // forward declare, to be able to friend it later on
@ -747,4 +749,5 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
internal_iterator<typename std::remove_const<BasicJsonType>::type> m_it {}; internal_iterator<typename std::remove_const<BasicJsonType>::type> m_it {};
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -23,6 +23,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
template<typename string_type> template<typename string_type>
@ -202,6 +204,7 @@ auto get(const nlohmann::detail::iteration_proxy_value<IteratorType>& i) -> decl
return i.value(); return i.value();
} }
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// The Addition to the STD Namespace is required to add // The Addition to the STD Namespace is required to add

View File

@ -15,6 +15,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
template<typename It, typename = void> template<typename It, typename = void>
@ -56,4 +58,5 @@ struct iterator_traits<T*, enable_if_t<std::is_object<T>::value>>
using reference = T&; using reference = T&;
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -14,6 +14,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
////////////////////// //////////////////////
@ -124,4 +126,5 @@ class json_reverse_iterator : public std::reverse_iterator<Base>
} }
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -15,6 +15,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
/* /*
@ -128,4 +130,5 @@ class primitive_iterator_t
} }
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -29,6 +29,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
/// @brief JSON Pointer defines a string syntax for identifying a specific value within a JSON document /// @brief JSON Pointer defines a string syntax for identifying a specific value within a JSON document
/// @sa https://json.nlohmann.me/api/json_pointer/ /// @sa https://json.nlohmann.me/api/json_pointer/
@ -897,4 +899,5 @@ inline bool operator!=(json_pointer<RefStringTypeLhs> const& lhs,
{ {
return !(lhs == rhs); return !(lhs == rhs);
} }
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -15,6 +15,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
template<typename BasicJsonType> template<typename BasicJsonType>
@ -73,4 +75,5 @@ class json_ref
value_type const* value_ref = nullptr; value_type const* value_ref = nullptr;
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -12,5 +12,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
NLOHMANN_CAN_CALL_STD_FUNC_IMPL(begin); NLOHMANN_CAN_CALL_STD_FUNC_IMPL(begin);
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -12,5 +12,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
NLOHMANN_CAN_CALL_STD_FUNC_IMPL(end); NLOHMANN_CAN_CALL_STD_FUNC_IMPL(end);
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -17,6 +17,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
@ -164,4 +166,5 @@ struct static_const
#endif #endif
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -15,6 +15,8 @@
// https://en.cppreference.com/w/cpp/experimental/is_detected // https://en.cppreference.com/w/cpp/experimental/is_detected
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
struct nonesuch struct nonesuch
@ -66,4 +68,5 @@ template<class To, template<class...> class Op, class... Args>
using is_detected_convertible = using is_detected_convertible =
std::is_convertible<detected_t<Op, Args...>, To>; std::is_convertible<detected_t<Op, Args...>, To>;
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -10,9 +10,12 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
// dispatching helper struct // dispatching helper struct
template <class T> struct identity_tag {}; template <class T> struct identity_tag {};
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -17,6 +17,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
template<typename T> template<typename T>
@ -154,4 +156,5 @@ struct is_sax_static_asserts
"std::string&, const exception&)"); "std::string&, const exception&)");
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -24,6 +24,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
/*! /*!
@brief detail namespace with internal helper functions @brief detail namespace with internal helper functions
@ -686,4 +688,5 @@ inline constexpr bool value_in_range_of(T val)
} }
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -10,6 +10,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
template<typename ...Ts> struct make_void template<typename ...Ts> struct make_void
@ -18,4 +20,5 @@ template<typename ...Ts> struct make_void
}; };
template<typename ...Ts> using void_t = typename make_void<Ts...>::type; template<typename ...Ts> using void_t = typename make_void<Ts...>::type;
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -26,6 +26,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
/////////////////// ///////////////////
@ -1834,4 +1836,5 @@ class binary_writer
output_adapter_t<CharType> oa = nullptr; output_adapter_t<CharType> oa = nullptr;
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -24,6 +24,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
/// abstract output adapter interface /// abstract output adapter interface
@ -143,4 +145,5 @@ class output_adapter
output_adapter_t<CharType> oa = nullptr; output_adapter_t<CharType> oa = nullptr;
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -33,6 +33,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
/////////////////// ///////////////////
@ -984,4 +986,5 @@ class serializer
const error_handler_t error_handler; const error_handler_t error_handler;
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -17,6 +17,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
@ -144,4 +146,5 @@ inline OutStringType concat(Args && ... args)
} }
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -12,6 +12,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
@ -70,4 +72,5 @@ static void unescape(StringType& s)
} }
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -20,6 +20,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
/////////////////////////// ///////////////////////////
@ -114,4 +116,5 @@ inline bool operator<(const value_t lhs, const value_t rhs) noexcept
} }
#endif #endif
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -85,6 +85,8 @@
*/ */
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
/*! /*!
@brief a class to store JSON values @brief a class to store JSON values
@ -5086,6 +5088,7 @@ std::string to_string(const NLOHMANN_BASIC_JSON_TPL& j)
return j.dump(); return j.dump();
} }
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
/////////////////////// ///////////////////////

View File

@ -22,6 +22,8 @@
*/ */
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
/*! /*!
@brief default JSONSerializer template argument @brief default JSONSerializer template argument
@ -67,6 +69,7 @@ struct ordered_map;
/// @sa https://json.nlohmann.me/api/ordered_json/ /// @sa https://json.nlohmann.me/api/ordered_json/
using ordered_json = basic_json<nlohmann::ordered_map>; using ordered_json = basic_json<nlohmann::ordered_map>;
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
#endif // INCLUDE_NLOHMANN_JSON_FWD_HPP_ #endif // INCLUDE_NLOHMANN_JSON_FWD_HPP_

View File

@ -22,6 +22,8 @@
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
/// ordered_map: a minimal map-like container that preserves insertion order /// ordered_map: a minimal map-like container that preserves insertion order
/// for use within nlohmann::basic_json<ordered_map> /// for use within nlohmann::basic_json<ordered_map>
@ -357,4 +359,5 @@ private:
JSON_NO_UNIQUE_ADDRESS key_compare m_compare = key_compare(); JSON_NO_UNIQUE_ADDRESS key_compare m_compare = key_compare();
}; };
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann

View File

@ -2199,6 +2199,8 @@ JSON_HEDLEY_DIAGNOSTIC_POP
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
template<typename ...Ts> struct make_void template<typename ...Ts> struct make_void
@ -2207,12 +2209,15 @@ template<typename ...Ts> struct make_void
}; };
template<typename ...Ts> using void_t = typename make_void<Ts...>::type; template<typename ...Ts> using void_t = typename make_void<Ts...>::type;
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// https://en.cppreference.com/w/cpp/experimental/is_detected // https://en.cppreference.com/w/cpp/experimental/is_detected
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
struct nonesuch struct nonesuch
@ -2264,6 +2269,7 @@ template<class To, template<class...> class Op, class... Args>
using is_detected_convertible = using is_detected_convertible =
std::is_convertible<detected_t<Op, Args...>, To>; std::is_convertible<detected_t<Op, Args...>, To>;
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
@ -2730,6 +2736,8 @@ using is_detected_convertible =
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
/////////////////////////// ///////////////////////////
@ -2824,6 +2832,7 @@ inline bool operator<(const value_t lhs, const value_t rhs) noexcept
} }
#endif #endif
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/string_escape.hpp> // #include <nlohmann/detail/string_escape.hpp>
@ -2842,6 +2851,8 @@ inline bool operator<(const value_t lhs, const value_t rhs) noexcept
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
@ -2900,6 +2911,7 @@ static void unescape(StringType& s)
} }
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/input/position_t.hpp> // #include <nlohmann/detail/input/position_t.hpp>
@ -2917,6 +2929,8 @@ static void unescape(StringType& s)
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
/// struct to capture the start position of the current token /// struct to capture the start position of the current token
@ -2937,6 +2951,7 @@ struct position_t
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/macro_scope.hpp> // #include <nlohmann/detail/macro_scope.hpp>
@ -2962,6 +2977,8 @@ struct position_t
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
@ -3109,6 +3126,7 @@ struct static_const
#endif #endif
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/meta/type_traits.hpp> // #include <nlohmann/detail/meta/type_traits.hpp>
@ -3150,6 +3168,8 @@ struct static_const
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
template<typename It, typename = void> template<typename It, typename = void>
@ -3191,6 +3211,7 @@ struct iterator_traits<T*, enable_if_t<std::is_object<T>::value>>
using reference = T&; using reference = T&;
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/meta/call_std/begin.hpp> // #include <nlohmann/detail/meta/call_std/begin.hpp>
@ -3209,7 +3230,10 @@ struct iterator_traits<T*, enable_if_t<std::is_object<T>::value>>
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
NLOHMANN_CAN_CALL_STD_FUNC_IMPL(begin); NLOHMANN_CAN_CALL_STD_FUNC_IMPL(begin);
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/meta/call_std/end.hpp> // #include <nlohmann/detail/meta/call_std/end.hpp>
@ -3228,7 +3252,10 @@ NLOHMANN_CAN_CALL_STD_FUNC_IMPL(begin);
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
NLOHMANN_CAN_CALL_STD_FUNC_IMPL(end); NLOHMANN_CAN_CALL_STD_FUNC_IMPL(end);
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/meta/cpp_future.hpp> // #include <nlohmann/detail/meta/cpp_future.hpp>
@ -3260,6 +3287,8 @@ NLOHMANN_CAN_CALL_STD_FUNC_IMPL(end);
*/ */
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
/*! /*!
@brief default JSONSerializer template argument @brief default JSONSerializer template argument
@ -3305,6 +3334,7 @@ struct ordered_map;
/// @sa https://json.nlohmann.me/api/ordered_json/ /// @sa https://json.nlohmann.me/api/ordered_json/
using ordered_json = basic_json<nlohmann::ordered_map>; using ordered_json = basic_json<nlohmann::ordered_map>;
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
#endif // INCLUDE_NLOHMANN_JSON_FWD_HPP_ #endif // INCLUDE_NLOHMANN_JSON_FWD_HPP_
@ -3312,6 +3342,8 @@ using ordered_json = basic_json<nlohmann::ordered_map>;
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
/*! /*!
@brief detail namespace with internal helper functions @brief detail namespace with internal helper functions
@ -3974,6 +4006,7 @@ inline constexpr bool value_in_range_of(T val)
} }
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/string_concat.hpp> // #include <nlohmann/detail/string_concat.hpp>
@ -3998,6 +4031,8 @@ inline constexpr bool value_in_range_of(T val)
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
@ -4125,14 +4160,18 @@ inline OutStringType concat(Args && ... args)
} }
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
//////////////// ////////////////
// exceptions // // exceptions //
//////////////// ////////////////
@ -4358,6 +4397,7 @@ class other_error : public exception
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/macro_scope.hpp> // #include <nlohmann/detail/macro_scope.hpp>
@ -4377,11 +4417,14 @@ class other_error : public exception
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
// dispatching helper struct // dispatching helper struct
template <class T> struct identity_tag {}; template <class T> struct identity_tag {};
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/meta/type_traits.hpp> // #include <nlohmann/detail/meta/type_traits.hpp>
@ -4393,20 +4436,34 @@ template <class T> struct identity_tag {};
#if JSON_HAS_EXPERIMENTAL_FILESYSTEM #if JSON_HAS_EXPERIMENTAL_FILESYSTEM
#include <experimental/filesystem> #include <experimental/filesystem>
namespace nlohmann::detail namespace nlohmann
{
inline namespace json_v3_10_5
{
namespace detail
{ {
namespace std_fs = std::experimental::filesystem; namespace std_fs = std::experimental::filesystem;
} // namespace nlohmann::detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann
#elif JSON_HAS_FILESYSTEM #elif JSON_HAS_FILESYSTEM
#include <filesystem> #include <filesystem>
namespace nlohmann::detail namespace nlohmann
{
inline namespace json_v3_10_5
{
namespace detail
{ {
namespace std_fs = std::filesystem; namespace std_fs = std::filesystem;
} // namespace nlohmann::detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann
#endif #endif
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
template<typename BasicJsonType> template<typename BasicJsonType>
@ -4868,6 +4925,7 @@ JSON_INLINE_VARIABLE constexpr const auto& from_json = // NOLINT(misc-definition
#ifndef JSON_HAS_CPP_17 #ifndef JSON_HAS_CPP_17
} // namespace } // namespace
#endif #endif
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/conversions/to_json.hpp> // #include <nlohmann/detail/conversions/to_json.hpp>
@ -4920,6 +4978,8 @@ JSON_INLINE_VARIABLE constexpr const auto& from_json = // NOLINT(misc-definition
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
template<typename string_type> template<typename string_type>
@ -5099,6 +5159,7 @@ auto get(const nlohmann::detail::iteration_proxy_value<IteratorType>& i) -> decl
return i.value(); return i.value();
} }
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// The Addition to the STD Namespace is required to add // The Addition to the STD Namespace is required to add
@ -5143,20 +5204,34 @@ class tuple_element<N, ::nlohmann::detail::iteration_proxy_value<IteratorType >>
#if JSON_HAS_EXPERIMENTAL_FILESYSTEM #if JSON_HAS_EXPERIMENTAL_FILESYSTEM
#include <experimental/filesystem> #include <experimental/filesystem>
namespace nlohmann::detail namespace nlohmann
{
inline namespace json_v3_10_5
{
namespace detail
{ {
namespace std_fs = std::experimental::filesystem; namespace std_fs = std::experimental::filesystem;
} // namespace nlohmann::detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann
#elif JSON_HAS_FILESYSTEM #elif JSON_HAS_FILESYSTEM
#include <filesystem> #include <filesystem>
namespace nlohmann::detail namespace nlohmann
{
inline namespace json_v3_10_5
{
namespace detail
{ {
namespace std_fs = std::filesystem; namespace std_fs = std::filesystem;
} // namespace nlohmann::detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann
#endif #endif
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
////////////////// //////////////////
@ -5567,6 +5642,7 @@ JSON_INLINE_VARIABLE constexpr const auto& to_json = // NOLINT(misc-definitions-
#ifndef JSON_HAS_CPP_17 #ifndef JSON_HAS_CPP_17
} // namespace } // namespace
#endif #endif
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/meta/identity_tag.hpp> // #include <nlohmann/detail/meta/identity_tag.hpp>
@ -5576,6 +5652,8 @@ JSON_INLINE_VARIABLE constexpr const auto& to_json = // NOLINT(misc-definitions-
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
/// @sa https://json.nlohmann.me/api/adl_serializer/ /// @sa https://json.nlohmann.me/api/adl_serializer/
template<typename ValueType, typename> template<typename ValueType, typename>
@ -5611,6 +5689,7 @@ struct adl_serializer
::nlohmann::to_json(j, std::forward<TargetType>(val)); ::nlohmann::to_json(j, std::forward<TargetType>(val));
} }
}; };
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/byte_container_with_subtype.hpp> // #include <nlohmann/byte_container_with_subtype.hpp>
@ -5630,6 +5709,8 @@ struct adl_serializer
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
/// @brief an internal type for a backed binary type /// @brief an internal type for a backed binary type
/// @sa https://json.nlohmann.me/api/byte_container_with_subtype/ /// @sa https://json.nlohmann.me/api/byte_container_with_subtype/
@ -5715,6 +5796,7 @@ class byte_container_with_subtype : public BinaryType
bool m_has_subtype = false; bool m_has_subtype = false;
}; };
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/conversions/from_json.hpp> // #include <nlohmann/detail/conversions/from_json.hpp>
@ -5745,6 +5827,8 @@ class byte_container_with_subtype : public BinaryType
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
@ -5855,6 +5939,7 @@ std::size_t hash(const BasicJsonType& j)
} }
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/input/binary_reader.hpp> // #include <nlohmann/detail/input/binary_reader.hpp>
@ -5917,6 +6002,8 @@ std::size_t hash(const BasicJsonType& j)
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
/// the supported input formats /// the supported input formats
@ -6379,6 +6466,7 @@ class span_input_adapter
contiguous_bytes_input_adapter ia; contiguous_bytes_input_adapter ia;
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/input/json_sax.hpp> // #include <nlohmann/detail/input/json_sax.hpp>
@ -6406,6 +6494,8 @@ class span_input_adapter
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
/*! /*!
@brief SAX interface @brief SAX interface
@ -7113,6 +7203,7 @@ class json_sax_acceptor
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/input/lexer.hpp> // #include <nlohmann/detail/input/lexer.hpp>
@ -7145,6 +7236,8 @@ class json_sax_acceptor
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
/////////// ///////////
@ -8749,6 +8842,7 @@ scan_number_done:
const char_int_type decimal_point_char = '.'; const char_int_type decimal_point_char = '.';
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/macro_scope.hpp> // #include <nlohmann/detail/macro_scope.hpp>
@ -8775,6 +8869,8 @@ scan_number_done:
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
template<typename T> template<typename T>
@ -8912,6 +9008,7 @@ struct is_sax_static_asserts
"std::string&, const exception&)"); "std::string&, const exception&)");
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/meta/type_traits.hpp> // #include <nlohmann/detail/meta/type_traits.hpp>
@ -8923,6 +9020,8 @@ struct is_sax_static_asserts
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
@ -11859,6 +11958,7 @@ class binary_reader
json_sax_t* sax = nullptr; json_sax_t* sax = nullptr;
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/input/input_adapters.hpp> // #include <nlohmann/detail/input/input_adapters.hpp>
@ -11902,6 +12002,8 @@ class binary_reader
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
//////////// ////////////
@ -12381,6 +12483,7 @@ class parser
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/iterators/internal_iterator.hpp> // #include <nlohmann/detail/iterators/internal_iterator.hpp>
@ -12413,6 +12516,8 @@ class parser
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
/* /*
@ -12526,11 +12631,14 @@ class primitive_iterator_t
} }
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
/*! /*!
@ -12549,6 +12657,7 @@ template<typename BasicJsonType> struct internal_iterator
primitive_iterator_t primitive_iterator {}; primitive_iterator_t primitive_iterator {};
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/iterators/iter_impl.hpp> // #include <nlohmann/detail/iterators/iter_impl.hpp>
@ -12582,6 +12691,8 @@ template<typename BasicJsonType> struct internal_iterator
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
// forward declare, to be able to friend it later on // forward declare, to be able to friend it later on
@ -13308,6 +13419,7 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
internal_iterator<typename std::remove_const<BasicJsonType>::type> m_it {}; internal_iterator<typename std::remove_const<BasicJsonType>::type> m_it {};
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/iterators/iteration_proxy.hpp> // #include <nlohmann/detail/iterators/iteration_proxy.hpp>
@ -13329,6 +13441,8 @@ class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-speci
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
////////////////////// //////////////////////
@ -13439,6 +13553,7 @@ class json_reverse_iterator : public std::reverse_iterator<Base>
} }
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/iterators/primitive_iterator.hpp> // #include <nlohmann/detail/iterators/primitive_iterator.hpp>
@ -13480,6 +13595,8 @@ class json_reverse_iterator : public std::reverse_iterator<Base>
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
/// @brief JSON Pointer defines a string syntax for identifying a specific value within a JSON document /// @brief JSON Pointer defines a string syntax for identifying a specific value within a JSON document
/// @sa https://json.nlohmann.me/api/json_pointer/ /// @sa https://json.nlohmann.me/api/json_pointer/
@ -14348,6 +14465,7 @@ inline bool operator!=(json_pointer<RefStringTypeLhs> const& lhs,
{ {
return !(lhs == rhs); return !(lhs == rhs);
} }
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/json_ref.hpp> // #include <nlohmann/detail/json_ref.hpp>
@ -14369,6 +14487,8 @@ inline bool operator!=(json_pointer<RefStringTypeLhs> const& lhs,
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
template<typename BasicJsonType> template<typename BasicJsonType>
@ -14427,6 +14547,7 @@ class json_ref
value_type const* value_ref = nullptr; value_type const* value_ref = nullptr;
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/macro_scope.hpp> // #include <nlohmann/detail/macro_scope.hpp>
@ -14493,6 +14614,8 @@ class json_ref
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
/// abstract output adapter interface /// abstract output adapter interface
@ -14612,6 +14735,7 @@ class output_adapter
output_adapter_t<CharType> oa = nullptr; output_adapter_t<CharType> oa = nullptr;
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/string_concat.hpp> // #include <nlohmann/detail/string_concat.hpp>
@ -14619,6 +14743,8 @@ class output_adapter
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
/////////////////// ///////////////////
@ -16427,6 +16553,7 @@ class binary_writer
output_adapter_t<CharType> oa = nullptr; output_adapter_t<CharType> oa = nullptr;
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/output/output_adapters.hpp> // #include <nlohmann/detail/output/output_adapters.hpp>
@ -16480,6 +16607,8 @@ class binary_writer
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
@ -17576,6 +17705,7 @@ char* to_chars(char* first, const char* last, FloatType value)
} }
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/exceptions.hpp> // #include <nlohmann/detail/exceptions.hpp>
@ -17595,6 +17725,8 @@ char* to_chars(char* first, const char* last, FloatType value)
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
namespace detail namespace detail
{ {
/////////////////// ///////////////////
@ -18546,6 +18678,7 @@ class serializer
const error_handler_t error_handler; const error_handler_t error_handler;
}; };
} // namespace detail } // namespace detail
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
// #include <nlohmann/detail/value_t.hpp> // #include <nlohmann/detail/value_t.hpp>
@ -18579,6 +18712,8 @@ class serializer
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
/// ordered_map: a minimal map-like container that preserves insertion order /// ordered_map: a minimal map-like container that preserves insertion order
/// for use within nlohmann::basic_json<ordered_map> /// for use within nlohmann::basic_json<ordered_map>
@ -18914,6 +19049,7 @@ private:
JSON_NO_UNIQUE_ADDRESS key_compare m_compare = key_compare(); JSON_NO_UNIQUE_ADDRESS key_compare m_compare = key_compare();
}; };
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
@ -18929,6 +19065,8 @@ private:
*/ */
namespace nlohmann namespace nlohmann
{ {
inline namespace json_v3_10_5
{
/*! /*!
@brief a class to store JSON values @brief a class to store JSON values
@ -23930,6 +24068,7 @@ std::string to_string(const NLOHMANN_BASIC_JSON_TPL& j)
return j.dump(); return j.dump();
} }
} // namespace json_v3_10_5
} // namespace nlohmann } // namespace nlohmann
/////////////////////// ///////////////////////