mirror of
https://github.com/nlohmann/json.git
synced 2025-05-11 21:53:56 +00:00
* 🔥 consolidate documentation * ♻️ overwork std specializations * 🚚 move images files to mkdocs * ♻️ fix URLs * 🔧 tweak MkDocs configuration * 🔧 add namespaces * 📝 document deprecations * 📝 document documentation generation * 🚸 improve search * 🚸 add examples * 🚧 start adding documentation for macros * 📝 add note for https://github.com/nlohmann/json/issues/874#issuecomment-1001699139 * 📝 overwork example handling * 📝 fix Markdown tables
4.8 KiB
4.8 KiB
nlohmann::basic_json::swap
// (1)
void swap(reference other) noexcept;
// (2)
void swap(reference left, reference right) noexcept;
// (3)
void swap(array_t& other);
// (4)
void swap(object_t& other);
// (5)
void swap(string_t& other);
// (6)
void swap(binary_t& other);
// (7)
void swap(typename binary_t::container_type& other);
- Exchanges the contents of the JSON value with those of
other
. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated. - Exchanges the contents of the JSON value from
left
with those ofright
. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated. Implemented as a friend function callable via ADL. - Exchanges the contents of a JSON array with those of
other
. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated. - Exchanges the contents of a JSON object with those of
other
. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated. - Exchanges the contents of a JSON string with those of
other
. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated. - Exchanges the contents of a binary value with those of
other
. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated. - Exchanges the contents of a binary value with those of
other
. Does not invoke any move, copy, or swap operations on individual elements. All iterators and references remain valid. The past-the-end iterator is invalidated. Unlike version (6), no binary subtype is involved.
Parameters
other
(in, out)- value to exchange the contents with
left
(in, out)- value to exchange the contents with
right
(in, out)- value to exchange the contents with
Exceptions
- No-throw guarantee: this function never throws exceptions.
- No-throw guarantee: this function never throws exceptions.
- Throws
type_error.310
if called on JSON values other than arrays; example:"cannot use swap() with boolean"
- Throws
type_error.310
if called on JSON values other than objects; example:"cannot use swap() with boolean"
- Throws
type_error.310
if called on JSON values other than strings; example:"cannot use swap() with boolean"
- Throws
type_error.310
if called on JSON values other than binaries; example:"cannot use swap() with boolean"
- Throws
type_error.310
if called on JSON values other than binaries; example:"cannot use swap() with boolean"
Complexity
Constant.
Examples
??? example "Example: Swap JSON value (1, 2)"
The example below shows how JSON values can be swapped with `swap()`.
```cpp
--8<-- "examples/swap__reference.cpp"
```
Output:
```json
--8<-- "examples/swap__reference.output"
```
??? example "Example: Swap array (3)"
The example below shows how arrays can be swapped with `swap()`.
```cpp
--8<-- "examples/swap__array_t.cpp"
```
Output:
```json
--8<-- "examples/swap__array_t.output"
```
??? example "Example: Swap object (4)"
The example below shows how objects can be swapped with `swap()`.
```cpp
--8<-- "examples/swap__object_t.cpp"
```
Output:
```json
--8<-- "examples/swap__object_t.output"
```
??? example "Example: Swap string (5)"
The example below shows how strings can be swapped with `swap()`.
```cpp
--8<-- "examples/swap__string_t.cpp"
```
Output:
```json
--8<-- "examples/swap__string_t.output"
```
??? example "Example: Swap string (6)"
The example below shows how binary values can be swapped with `swap()`.
```cpp
--8<-- "examples/swap__binary_t.cpp"
```
Output:
```json
--8<-- "examples/swap__binary_t.output"
```
See also
Version history
- Since version 1.0.0.
- Since version 1.0.0.
- Since version 1.0.0.
- Since version 1.0.0.
- Since version 1.0.0.
- Since version 3.8.0.
- Since version 3.8.0.