| # 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. |