JSON for Modern C++ 3.10.4

◆ swap

template<template< typename U, typename V, typename... Args > class ObjectType = std::map, template< typename U, typename... Args > class ArrayType = std::vector, class StringType = std::string, class BooleanType = bool, class NumberIntegerType = std::int64_t, class NumberUnsignedType = std::uint64_t, class NumberFloatType = double, template< typename U > class AllocatorType = std::allocator, template< typename T, typename SFINAE=void > class JSONSerializer = adl_serializer, class BinaryType = std::vector<std::uint8_t>>
void swap ( reference  left,
reference  right 
)
friend

Exchanges the contents of the JSON value from 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.

Parameters
[in,out]leftJSON value to exchange the contents with
[in,out]rightJSON value to exchange the contents with
Complexity
Constant.
Example
The example below shows how JSON values can be swapped with swap().
1#include <iostream>
2#include <nlohmann/json.hpp>
3
4using json = nlohmann::json;
5
6int main()
7{
8 // create two JSON values
9 json j1 = {1, 2, 3, 4, 5};
10 json j2 = {{"pi", 3.141592653589793}, {"e", 2.718281828459045}};
11
12 // swap the values
13 j1.swap(j2);
14
15 // output the values
16 std::cout << "j1 = " << j1 << '\n';
17 std::cout << "j2 = " << j2 << '\n';
18}
basic_json<> json
default JSON class
Definition: json.hpp:3472

Output (play with this example online):
j1 = {"e":2.718281828459045,"pi":3.141592653589793}
j2 = [1,2,3,4,5]
The example code above can be translated with
g++ -std=c++11 -Isingle_include doc/examples/swap__reference.cpp -o swap__reference 
Since
version 1.0.0

Definition at line 23652 of file json.hpp.