mirror of
https://github.com/nlohmann/json.git
synced 2025-06-11 08:32:55 +08:00
2.6 KiB
2.6 KiB
Macros
Some aspects of the library can be configured by defining preprocessor macros before including the json.hpp
header. See also the macro overview page.
Runtime assertions
- JSON_ASSERT(x) - control behavior of runtime assertions
Exceptions
- JSON_CATCH_USER(exception)
JSON_THROW_USER(exception)
JSON_TRY_USER - control exceptions - JSON_DIAGNOSTICS - control extended diagnostics
- JSON_NOEXCEPTION - switch off exceptions
Language support
- JSON_HAS_CPP_11
JSON_HAS_CPP_14
JSON_HAS_CPP_17
JSON_HAS_CPP_20 - set supported C++ standard - JSON_HAS_FILESYSTEM
JSON_HAS_EXPERIMENTAL_FILESYSTEM - controlstd::filesystem
support - JSON_HAS_RANGES - control
std::ranges
support - JSON_HAS_THREE_WAY_COMPARISON - control 3-way comparison support
- JSON_NO_IO - switch off functions relying on certain C++ I/O headers
- JSON_SKIP_UNSUPPORTED_COMPILER_CHECK - do not warn about unsupported compilers
Library version
- JSON_SKIP_LIBRARY_VERSION_CHECK - skip library version check
- NLOHMANN_JSON_VERSION_MAJOR
NLOHMANN_JSON_VERSION_MINOR
NLOHMANN_JSON_VERSION_PATCH - library version information
Type conversions
- JSON_DISABLE_ENUM_SERIALIZATION - switch off default serialization/deserialization functions for enums
- JSON_USE_IMPLICIT_CONVERSIONS - control implicit conversions
Comparison behavior
- JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON - control comparison of discarded values
Serialization/deserialization macros
- NLOHMANN_DEFINE_TYPE_INTRUSIVE(type, member...)
NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(type, member...) - serialization/deserialization of types with access to private variables - NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(type, member...)
NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(type, member...) - serialization/deserialization of types without access to private variables - NLOHMANN_JSON_SERIALIZE_ENUM(type, ...) - serialization/deserialization of enum types