mirror of
https://github.com/nlohmann/json.git
synced 2025-06-08 01:32:37 +08:00

* 📝 overwork macro documentation * 📝 address review comments * 🔧 add style check to Makefile * 🙈 overwork .gitignore * 📌 Pygments 2.12.0 is broken * ✏️ fix links * 🚸 adjust output to cppcheck * 📝 add titles to more admonitions * ✏️ fix typos * 📝 document future behavior change
2.1 KiB
2.1 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_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_USE_IMPLICIT_CONVERSIONS - control implicit conversions
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