2021-12-29 15:41:01 +03:00
# Macros
2022-04-09 19:09:23 +03:00
!!! note
This page is under construction. See the [macro overview page ](../../features/macros.md ) until then.
2022-04-16 23:43:11 +03:00
Some aspects of the library can be configured by defining preprocessor macros **before** including the `json.hpp`
header.
## Runtime assertions
2021-12-29 15:41:01 +03:00
2022-04-16 23:33:06 +03:00
- [**JSON_ASSERT(x)** ](json_assert.md ) - control behavior of runtime assertions
2022-04-16 23:43:11 +03:00
## Exceptions
2022-04-18 17:07:23 +03:00
- [**JSON_CATCH_USER(exception)**<br>**JSON_THROW_USER(exception)**<br>**JSON_TRY_USER** ](json_throw_user.md ) - control exceptions
2022-04-16 23:33:06 +03:00
- [**JSON_DIAGNOSTICS** ](json_diagnostics.md ) - control extended diagnostics
2022-04-18 17:07:23 +03:00
- [**JSON_NOEXCEPTION** ](json_noexception.md ) - switch off exceptions
2022-04-16 23:43:11 +03:00
## Language support
2022-04-17 16:23:00 +03:00
- [**JSON_HAS_CPP_11**<br>**JSON_HAS_CPP_14**<br>**JSON_HAS_CPP_17**<br>**JSON_HAS_CPP_20** ](json_has_cpp_11.md ) - set supported C++ standard
- [**JSON_HAS_FILESYSTEM**<br>**JSON_HAS_EXPERIMENTAL_FILESYSTEM** ](json_has_filesystem.md ) - control `std::filesystem` support
- [**JSON_NO_IO** ](json_no_io.md ) - switch off functions relying on certain C++ I/O headers
2022-04-16 23:33:06 +03:00
- [**JSON_SKIP_UNSUPPORTED_COMPILER_CHECK** ](json_skip_unsupported_compiler_check.md ) - do not warn about unsupported compilers
2022-04-17 16:23:00 +03:00
## Library version
- [**JSON_SKIP_LIBRARY_VERSION_CHECK** ](json_skip_library_version_check.md ) - skip library version check
- [**NLOHMANN_JSON_VERSION_MAJOR**<br>**NLOHMANN_JSON_VERSION_MINOR**<br>**NLOHMANN_JSON_VERSION_PATCH** ](nlohmann_json_version_major.md ) - library version information
2022-04-16 23:43:11 +03:00
## Type conversions
2022-04-17 16:23:00 +03:00
- [**JSON_USE_IMPLICIT_CONVERSIONS** ](json_use_implicit_conversions.md ) - control implicit conversions
2022-04-16 23:43:11 +03:00
## Serialization/deserialization macros
2021-12-29 15:41:01 +03:00
- `NLOHMANN_DEFINE_TYPE_INTRUSIVE(type, member...)`
- `NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(type, member...)`
- `NLOHMANN_JSON_SERIALIZE_ENUM(type, ...)`