mirror of
https://github.com/nlohmann/json.git
synced 2026-07-10 04:25:11 +00:00
62 lines
1.7 KiB
Markdown
62 lines
1.7 KiB
Markdown
# NLOHMANN_JSON_NAMESPACE_BEGIN, NLOHMANN_JSON_NAMESPACE_END
|
|
|
|
```cpp
|
|
#define NLOHMANN_JSON_NAMESPACE_BEGIN /* value */ // (1)
|
|
#define NLOHMANN_JSON_NAMESPACE_END /* value */ // (2)
|
|
```
|
|
|
|
These macros can be used to open and close the `nlohmann` namespace. See
|
|
[`nlohmann` Namespace](../../features/namespace.md#structure) for details.
|
|
|
|
1. Opens the namespace.
|
|
2. Closes the namespace.
|
|
|
|
## Default definition
|
|
|
|
The default definitions open and close the `nlohmann` namespace. The precise definition of
|
|
[`NLOHMANN_JSON_NAMESPACE_BEGIN`] varies as described [here](../../features/namespace.md#structure).
|
|
|
|
1. Default definition of `NLOHMANN_JSON_NAMESPACE_BEGIN`:
|
|
|
|
```cpp
|
|
namespace nlohmann
|
|
{
|
|
inline namespace json_abi_v3_12_0
|
|
{
|
|
```
|
|
|
|
2. Default definition of `NLOHMANN_JSON_NAMESPACE_END`:
|
|
```cpp
|
|
} // namespace json_abi_v3_12_0
|
|
} // namespace nlohmann
|
|
```
|
|
|
|
When these macros are not defined, the library will define them to their default definitions.
|
|
|
|
## Examples
|
|
|
|
??? example
|
|
|
|
The example shows how to use `NLOHMANN_JSON_NAMESPACE_BEGIN`/`NLOHMANN_JSON_NAMESPACE_END` from the
|
|
[How do I convert third-party types?](../../features/arbitrary_types.md#how-do-i-convert-third-party-types) page.
|
|
|
|
```cpp
|
|
--8<-- "examples/nlohmann_json_namespace_begin.c++17.cpp"
|
|
```
|
|
|
|
Output:
|
|
|
|
```json
|
|
--8<-- "examples/nlohmann_json_namespace_begin.c++17.output"
|
|
```
|
|
|
|
## See also
|
|
|
|
- [`nlohmann` Namespace](../../features/namespace.md)
|
|
- [NLOHMANN_JSON_NAMESPACE](nlohmann_json_namespace.md)
|
|
- [`NLOHMANN_JSON_NAMESPACE_NO_VERSION`](nlohmann_json_namespace_no_version.md)
|
|
|
|
## Version history
|
|
|
|
- Added in version 3.11.0. Changed inline namespace name in version 3.11.2.
|