// (1) void swap(reference other) noexcept ( std::is_nothrow_move_constructible<value_t>::value && std::is_nothrow_move_assignable<value_t>::value && std::is_nothrow_move_constructible<json_value>::value && std::is_nothrow_move_assignable<json_value>::value ); // (2) friend void swap(reference left, reference right) noexcept ( std::is_nothrow_move_constructible<value_t>::value && std::is_nothrow_move_assignable<value_t>::value && std::is_nothrow_move_constructible<json_value>::value && std::is_nothrow_move_assignable<json_value>::value ); // (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);
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.left with those of right. 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.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.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.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.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.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.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
type_error.310 if called on JSON values other than arrays; example: "cannot use swap(array_t&) with boolean"type_error.310 if called on JSON values other than objects; example: "cannot use swap(object_t&) with boolean"type_error.310 if called on JSON values other than strings; example: "cannot use swap(string_t&) with boolean"type_error.310 if called on JSON values other than binaries; example: "cannot use swap(binary_t&) with boolean"type_error.310 if called on JSON values other than binaries; example: "cannot use swap(binary_t::container_type&) with boolean"Constant.
??? 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 binary (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" ```