json/doc/mkdocs/docs/api/macros/index.md

40 lines
1.3 KiB
Markdown
Raw Normal View History

# Macros
!!! 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
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
- `JSON_CATCH_USER(exception)`
2022-04-16 23:33:06 +03:00
- [**JSON_DIAGNOSTICS**](json_diagnostics.md) - control extended diagnostics
2022-04-16 23:43:11 +03:00
- `JSON_NOEXCEPTION`
- `JSON_THROW_USER(exception)`
- `JSON_TRY_USER`
## Language support
- `JSON_HAS_CPP_11`, `JSON_HAS_CPP_14`, `JSON_HAS_CPP_17`, `JSON_HAS_CPP_20`
2022-04-16 23:33:06 +03:00
- [**JSON_HAS_FILESYSTEM**/**JSON_HAS_EXPERIMENTAL_FILESYSTEM**](json_has_filesystem.md) - control `std::filesystem` support
- `JSON_NO_IO`
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-16 23:43:11 +03:00
- `JSON_SKIP_LIBRARY_VERSION_CHECK`
## Type conversions
- `JSON_USE_IMPLICIT_CONVERSIONS`
2022-04-16 23:43:11 +03:00
## Serialization/deserialization macros
- `NLOHMANN_DEFINE_TYPE_INTRUSIVE(type, member...)`
- `NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(type, member...)`
- `NLOHMANN_JSON_SERIALIZE_ENUM(type, ...)`
- `NLOHMANN_JSON_VERSION_MAJOR`, `NLOHMANN_JSON_VERSION_MINOR`, `NLOHMANN_JSON_VERSION_PATCH`