mirror of
https://github.com/nlohmann/json
synced 2024-11-10 06:20:06 +00:00
📝 fix links to cppreference named requirements
"Concepts" have been renamed to "named requirements". This is because P0898R3 Standard Library Concepts has been merged into C++20. Cppreference have moved their links accordingly.
This commit is contained in:
parent
9f00db48d9
commit
963d06a13c
@ -288,7 +288,7 @@ json j = json::parse(v);
|
|||||||
|
|
||||||
### STL-like access
|
### STL-like access
|
||||||
|
|
||||||
We designed the JSON class to behave just like an STL container. In fact, it satisfies the [**ReversibleContainer**](https://en.cppreference.com/w/cpp/concept/ReversibleContainer) requirement.
|
We designed the JSON class to behave just like an STL container. In fact, it satisfies the [**ReversibleContainer**](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer) requirement.
|
||||||
|
|
||||||
```cpp
|
```cpp
|
||||||
// create an array using push_back
|
// create an array using push_back
|
||||||
@ -611,7 +611,7 @@ Some important things:
|
|||||||
|
|
||||||
* Those methods **MUST** be in your type's namespace (which can be the global namespace), or the library will not be able to locate them (in this example, they are in namespace `ns`, where `person` is defined).
|
* Those methods **MUST** be in your type's namespace (which can be the global namespace), or the library will not be able to locate them (in this example, they are in namespace `ns`, where `person` is defined).
|
||||||
* Those methods **MUST** be available (e.g., properly headers must be included) everywhere you use the implicit conversions. Look at [issue 1108](https://github.com/nlohmann/json/issues/1108) for errors that may occur otherwise.
|
* Those methods **MUST** be available (e.g., properly headers must be included) everywhere you use the implicit conversions. Look at [issue 1108](https://github.com/nlohmann/json/issues/1108) for errors that may occur otherwise.
|
||||||
* When using `get<your_type>()`, `your_type` **MUST** be [DefaultConstructible](https://en.cppreference.com/w/cpp/concept/DefaultConstructible). (There is a way to bypass this requirement described later.)
|
* When using `get<your_type>()`, `your_type` **MUST** be [DefaultConstructible](https://en.cppreference.com/w/cpp/named_req/DefaultConstructible). (There is a way to bypass this requirement described later.)
|
||||||
* In function `from_json`, use function [`at()`](https://nlohmann.github.io/json/classnlohmann_1_1basic__json_a93403e803947b86f4da2d1fb3345cf2c.html#a93403e803947b86f4da2d1fb3345cf2c) to access the object values rather than `operator[]`. In case a key does not exist, `at` throws an exception that you can handle, whereas `operator[]` exhibits undefined behavior.
|
* In function `from_json`, use function [`at()`](https://nlohmann.github.io/json/classnlohmann_1_1basic__json_a93403e803947b86f4da2d1fb3345cf2c.html#a93403e803947b86f4da2d1fb3345cf2c) to access the object values rather than `operator[]`. In case a key does not exist, `at` throws an exception that you can handle, whereas `operator[]` exhibits undefined behavior.
|
||||||
* In case your type contains several `operator=` definitions, code like `your_variable = your_json;` [may not compile](https://github.com/nlohmann/json/issues/667). You need to write `your_variable = your_json.get<decltype your_variable>();` instead.
|
* In case your type contains several `operator=` definitions, code like `your_variable = your_json;` [may not compile](https://github.com/nlohmann/json/issues/667). You need to write `your_variable = your_json.get<decltype your_variable>();` instead.
|
||||||
* You do not need to add serializers or deserializers for STL types like `std::vector`: the library already implements these.
|
* You do not need to add serializers or deserializers for STL types like `std::vector`: the library already implements these.
|
||||||
@ -672,7 +672,7 @@ namespace nlohmann {
|
|||||||
|
|
||||||
#### How can I use `get()` for non-default constructible/non-copyable types?
|
#### How can I use `get()` for non-default constructible/non-copyable types?
|
||||||
|
|
||||||
There is a way, if your type is [MoveConstructible](https://en.cppreference.com/w/cpp/concept/MoveConstructible). You will need to specialize the `adl_serializer` as well, but with a special `from_json` overload:
|
There is a way, if your type is [MoveConstructible](https://en.cppreference.com/w/cpp/named_req/MoveConstructible). You will need to specialize the `adl_serializer` as well, but with a special `from_json` overload:
|
||||||
|
|
||||||
```cpp
|
```cpp
|
||||||
struct move_only_type {
|
struct move_only_type {
|
||||||
|
@ -31,7 +31,7 @@ This class implements a both iterators (iterator and const_iterator) for the
|
|||||||
|
|
||||||
@requirement The class satisfies the following concept requirements:
|
@requirement The class satisfies the following concept requirements:
|
||||||
-
|
-
|
||||||
[BidirectionalIterator](https://en.cppreference.com/w/cpp/concept/BidirectionalIterator):
|
[BidirectionalIterator](https://en.cppreference.com/w/cpp/named_req/BidirectionalIterator):
|
||||||
The iterator that can be moved can be moved in both directions (i.e.
|
The iterator that can be moved can be moved in both directions (i.e.
|
||||||
incremented and decremented).
|
incremented and decremented).
|
||||||
|
|
||||||
|
@ -21,10 +21,10 @@ create @ref const_reverse_iterator).
|
|||||||
|
|
||||||
@requirement The class satisfies the following concept requirements:
|
@requirement The class satisfies the following concept requirements:
|
||||||
-
|
-
|
||||||
[BidirectionalIterator](https://en.cppreference.com/w/cpp/concept/BidirectionalIterator):
|
[BidirectionalIterator](https://en.cppreference.com/w/cpp/named_req/BidirectionalIterator):
|
||||||
The iterator that can be moved can be moved in both directions (i.e.
|
The iterator that can be moved can be moved in both directions (i.e.
|
||||||
incremented and decremented).
|
incremented and decremented).
|
||||||
- [OutputIterator](https://en.cppreference.com/w/cpp/concept/OutputIterator):
|
- [OutputIterator](https://en.cppreference.com/w/cpp/named_req/OutputIterator):
|
||||||
It is possible to write to the pointed-to element (only if @a Base is
|
It is possible to write to the pointed-to element (only if @a Base is
|
||||||
@ref iterator).
|
@ref iterator).
|
||||||
|
|
||||||
|
@ -101,42 +101,42 @@ and `from_json()` (@ref adl_serializer by default)
|
|||||||
|
|
||||||
@requirement The class satisfies the following concept requirements:
|
@requirement The class satisfies the following concept requirements:
|
||||||
- Basic
|
- Basic
|
||||||
- [DefaultConstructible](https://en.cppreference.com/w/cpp/concept/DefaultConstructible):
|
- [DefaultConstructible](https://en.cppreference.com/w/cpp/named_req/DefaultConstructible):
|
||||||
JSON values can be default constructed. The result will be a JSON null
|
JSON values can be default constructed. The result will be a JSON null
|
||||||
value.
|
value.
|
||||||
- [MoveConstructible](https://en.cppreference.com/w/cpp/concept/MoveConstructible):
|
- [MoveConstructible](https://en.cppreference.com/w/cpp/named_req/MoveConstructible):
|
||||||
A JSON value can be constructed from an rvalue argument.
|
A JSON value can be constructed from an rvalue argument.
|
||||||
- [CopyConstructible](https://en.cppreference.com/w/cpp/concept/CopyConstructible):
|
- [CopyConstructible](https://en.cppreference.com/w/cpp/named_req/CopyConstructible):
|
||||||
A JSON value can be copy-constructed from an lvalue expression.
|
A JSON value can be copy-constructed from an lvalue expression.
|
||||||
- [MoveAssignable](https://en.cppreference.com/w/cpp/concept/MoveAssignable):
|
- [MoveAssignable](https://en.cppreference.com/w/cpp/named_req/MoveAssignable):
|
||||||
A JSON value van be assigned from an rvalue argument.
|
A JSON value van be assigned from an rvalue argument.
|
||||||
- [CopyAssignable](https://en.cppreference.com/w/cpp/concept/CopyAssignable):
|
- [CopyAssignable](https://en.cppreference.com/w/cpp/named_req/CopyAssignable):
|
||||||
A JSON value can be copy-assigned from an lvalue expression.
|
A JSON value can be copy-assigned from an lvalue expression.
|
||||||
- [Destructible](https://en.cppreference.com/w/cpp/concept/Destructible):
|
- [Destructible](https://en.cppreference.com/w/cpp/named_req/Destructible):
|
||||||
JSON values can be destructed.
|
JSON values can be destructed.
|
||||||
- Layout
|
- Layout
|
||||||
- [StandardLayoutType](https://en.cppreference.com/w/cpp/concept/StandardLayoutType):
|
- [StandardLayoutType](https://en.cppreference.com/w/cpp/named_req/StandardLayoutType):
|
||||||
JSON values have
|
JSON values have
|
||||||
[standard layout](https://en.cppreference.com/w/cpp/language/data_members#Standard_layout):
|
[standard layout](https://en.cppreference.com/w/cpp/language/data_members#Standard_layout):
|
||||||
All non-static data members are private and standard layout types, the
|
All non-static data members are private and standard layout types, the
|
||||||
class has no virtual functions or (virtual) base classes.
|
class has no virtual functions or (virtual) base classes.
|
||||||
- Library-wide
|
- Library-wide
|
||||||
- [EqualityComparable](https://en.cppreference.com/w/cpp/concept/EqualityComparable):
|
- [EqualityComparable](https://en.cppreference.com/w/cpp/named_req/EqualityComparable):
|
||||||
JSON values can be compared with `==`, see @ref
|
JSON values can be compared with `==`, see @ref
|
||||||
operator==(const_reference,const_reference).
|
operator==(const_reference,const_reference).
|
||||||
- [LessThanComparable](https://en.cppreference.com/w/cpp/concept/LessThanComparable):
|
- [LessThanComparable](https://en.cppreference.com/w/cpp/named_req/LessThanComparable):
|
||||||
JSON values can be compared with `<`, see @ref
|
JSON values can be compared with `<`, see @ref
|
||||||
operator<(const_reference,const_reference).
|
operator<(const_reference,const_reference).
|
||||||
- [Swappable](https://en.cppreference.com/w/cpp/concept/Swappable):
|
- [Swappable](https://en.cppreference.com/w/cpp/named_req/Swappable):
|
||||||
Any JSON lvalue or rvalue of can be swapped with any lvalue or rvalue of
|
Any JSON lvalue or rvalue of can be swapped with any lvalue or rvalue of
|
||||||
other compatible types, using unqualified function call @ref swap().
|
other compatible types, using unqualified function call @ref swap().
|
||||||
- [NullablePointer](https://en.cppreference.com/w/cpp/concept/NullablePointer):
|
- [NullablePointer](https://en.cppreference.com/w/cpp/named_req/NullablePointer):
|
||||||
JSON values can be compared against `std::nullptr_t` objects which are used
|
JSON values can be compared against `std::nullptr_t` objects which are used
|
||||||
to model the `null` value.
|
to model the `null` value.
|
||||||
- Container
|
- Container
|
||||||
- [Container](https://en.cppreference.com/w/cpp/concept/Container):
|
- [Container](https://en.cppreference.com/w/cpp/named_req/Container):
|
||||||
JSON values can be used like STL containers and provide iterator access.
|
JSON values can be used like STL containers and provide iterator access.
|
||||||
- [ReversibleContainer](https://en.cppreference.com/w/cpp/concept/ReversibleContainer);
|
- [ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer);
|
||||||
JSON values can be used like STL containers and provide reverse iterator
|
JSON values can be used like STL containers and provide reverse iterator
|
||||||
access.
|
access.
|
||||||
|
|
||||||
@ -1735,7 +1735,7 @@ class basic_json
|
|||||||
changes to any JSON value.
|
changes to any JSON value.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[Container](https://en.cppreference.com/w/cpp/concept/Container)
|
[Container](https://en.cppreference.com/w/cpp/named_req/Container)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is linear.
|
- The complexity is linear.
|
||||||
- As postcondition, it holds: `other == basic_json(other)`.
|
- As postcondition, it holds: `other == basic_json(other)`.
|
||||||
@ -1820,7 +1820,7 @@ class basic_json
|
|||||||
exceptions.
|
exceptions.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[MoveConstructible](https://en.cppreference.com/w/cpp/concept/MoveConstructible)
|
[MoveConstructible](https://en.cppreference.com/w/cpp/named_req/MoveConstructible)
|
||||||
requirements.
|
requirements.
|
||||||
|
|
||||||
@liveexample{The code below shows the move constructor explicitly called
|
@liveexample{The code below shows the move constructor explicitly called
|
||||||
@ -1854,7 +1854,7 @@ class basic_json
|
|||||||
@complexity Linear.
|
@complexity Linear.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[Container](https://en.cppreference.com/w/cpp/concept/Container)
|
[Container](https://en.cppreference.com/w/cpp/named_req/Container)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is linear.
|
- The complexity is linear.
|
||||||
|
|
||||||
@ -1891,7 +1891,7 @@ class basic_json
|
|||||||
@complexity Linear.
|
@complexity Linear.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[Container](https://en.cppreference.com/w/cpp/concept/Container)
|
[Container](https://en.cppreference.com/w/cpp/named_req/Container)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is linear.
|
- The complexity is linear.
|
||||||
- All stored elements are destroyed and all memory is freed.
|
- All stored elements are destroyed and all memory is freed.
|
||||||
@ -2522,8 +2522,8 @@ class basic_json
|
|||||||
@brief get a value (explicit)
|
@brief get a value (explicit)
|
||||||
|
|
||||||
Explicit type conversion between the JSON value and a compatible value
|
Explicit type conversion between the JSON value and a compatible value
|
||||||
which is [CopyConstructible](https://en.cppreference.com/w/cpp/concept/CopyConstructible)
|
which is [CopyConstructible](https://en.cppreference.com/w/cpp/named_req/CopyConstructible)
|
||||||
and [DefaultConstructible](https://en.cppreference.com/w/cpp/concept/DefaultConstructible).
|
and [DefaultConstructible](https://en.cppreference.com/w/cpp/named_req/DefaultConstructible).
|
||||||
The value is converted by calling the @ref json_serializer<ValueType>
|
The value is converted by calling the @ref json_serializer<ValueType>
|
||||||
`from_json()` method.
|
`from_json()` method.
|
||||||
|
|
||||||
@ -2583,8 +2583,8 @@ class basic_json
|
|||||||
@brief get a value (explicit); special case
|
@brief get a value (explicit); special case
|
||||||
|
|
||||||
Explicit type conversion between the JSON value and a compatible value
|
Explicit type conversion between the JSON value and a compatible value
|
||||||
which is **not** [CopyConstructible](https://en.cppreference.com/w/cpp/concept/CopyConstructible)
|
which is **not** [CopyConstructible](https://en.cppreference.com/w/cpp/named_req/CopyConstructible)
|
||||||
and **not** [DefaultConstructible](https://en.cppreference.com/w/cpp/concept/DefaultConstructible).
|
and **not** [DefaultConstructible](https://en.cppreference.com/w/cpp/named_req/DefaultConstructible).
|
||||||
The value is converted by calling the @ref json_serializer<ValueType>
|
The value is converted by calling the @ref json_serializer<ValueType>
|
||||||
`from_json()` method.
|
`from_json()` method.
|
||||||
|
|
||||||
@ -3948,7 +3948,7 @@ class basic_json
|
|||||||
@complexity Constant.
|
@complexity Constant.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[Container](https://en.cppreference.com/w/cpp/concept/Container)
|
[Container](https://en.cppreference.com/w/cpp/named_req/Container)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
|
|
||||||
@ -3987,7 +3987,7 @@ class basic_json
|
|||||||
@complexity Constant.
|
@complexity Constant.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[Container](https://en.cppreference.com/w/cpp/concept/Container)
|
[Container](https://en.cppreference.com/w/cpp/named_req/Container)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
- Has the semantics of `const_cast<const basic_json&>(*this).begin()`.
|
- Has the semantics of `const_cast<const basic_json&>(*this).begin()`.
|
||||||
@ -4019,7 +4019,7 @@ class basic_json
|
|||||||
@complexity Constant.
|
@complexity Constant.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[Container](https://en.cppreference.com/w/cpp/concept/Container)
|
[Container](https://en.cppreference.com/w/cpp/named_req/Container)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
|
|
||||||
@ -4058,7 +4058,7 @@ class basic_json
|
|||||||
@complexity Constant.
|
@complexity Constant.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[Container](https://en.cppreference.com/w/cpp/concept/Container)
|
[Container](https://en.cppreference.com/w/cpp/named_req/Container)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
- Has the semantics of `const_cast<const basic_json&>(*this).end()`.
|
- Has the semantics of `const_cast<const basic_json&>(*this).end()`.
|
||||||
@ -4088,7 +4088,7 @@ class basic_json
|
|||||||
@complexity Constant.
|
@complexity Constant.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[ReversibleContainer](https://en.cppreference.com/w/cpp/concept/ReversibleContainer)
|
[ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
- Has the semantics of `reverse_iterator(end())`.
|
- Has the semantics of `reverse_iterator(end())`.
|
||||||
@ -4125,7 +4125,7 @@ class basic_json
|
|||||||
@complexity Constant.
|
@complexity Constant.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[ReversibleContainer](https://en.cppreference.com/w/cpp/concept/ReversibleContainer)
|
[ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
- Has the semantics of `reverse_iterator(begin())`.
|
- Has the semantics of `reverse_iterator(begin())`.
|
||||||
@ -4162,7 +4162,7 @@ class basic_json
|
|||||||
@complexity Constant.
|
@complexity Constant.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[ReversibleContainer](https://en.cppreference.com/w/cpp/concept/ReversibleContainer)
|
[ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
- Has the semantics of `const_cast<const basic_json&>(*this).rbegin()`.
|
- Has the semantics of `const_cast<const basic_json&>(*this).rbegin()`.
|
||||||
@ -4191,7 +4191,7 @@ class basic_json
|
|||||||
@complexity Constant.
|
@complexity Constant.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[ReversibleContainer](https://en.cppreference.com/w/cpp/concept/ReversibleContainer)
|
[ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
- Has the semantics of `const_cast<const basic_json&>(*this).rend()`.
|
- Has the semantics of `const_cast<const basic_json&>(*this).rend()`.
|
||||||
@ -4389,7 +4389,7 @@ class basic_json
|
|||||||
false in the case of a string.
|
false in the case of a string.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[Container](https://en.cppreference.com/w/cpp/concept/Container)
|
[Container](https://en.cppreference.com/w/cpp/named_req/Container)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
- Has the semantics of `begin() == end()`.
|
- Has the semantics of `begin() == end()`.
|
||||||
@ -4460,7 +4460,7 @@ class basic_json
|
|||||||
the case of a string.
|
the case of a string.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[Container](https://en.cppreference.com/w/cpp/concept/Container)
|
[Container](https://en.cppreference.com/w/cpp/named_req/Container)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
- Has the semantics of `std::distance(begin(), end())`.
|
- Has the semantics of `std::distance(begin(), end())`.
|
||||||
@ -4530,7 +4530,7 @@ class basic_json
|
|||||||
@exceptionsafety No-throw guarantee: this function never throws exceptions.
|
@exceptionsafety No-throw guarantee: this function never throws exceptions.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[Container](https://en.cppreference.com/w/cpp/concept/Container)
|
[Container](https://en.cppreference.com/w/cpp/named_req/Container)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
- Has the semantics of returning `b.size()` where `b` is the largest
|
- Has the semantics of returning `b.size()` where `b` is the largest
|
||||||
|
@ -4740,7 +4740,7 @@ This class implements a both iterators (iterator and const_iterator) for the
|
|||||||
|
|
||||||
@requirement The class satisfies the following concept requirements:
|
@requirement The class satisfies the following concept requirements:
|
||||||
-
|
-
|
||||||
[BidirectionalIterator](https://en.cppreference.com/w/cpp/concept/BidirectionalIterator):
|
[BidirectionalIterator](https://en.cppreference.com/w/cpp/named_req/BidirectionalIterator):
|
||||||
The iterator that can be moved can be moved in both directions (i.e.
|
The iterator that can be moved can be moved in both directions (i.e.
|
||||||
incremented and decremented).
|
incremented and decremented).
|
||||||
|
|
||||||
@ -5460,10 +5460,10 @@ create @ref const_reverse_iterator).
|
|||||||
|
|
||||||
@requirement The class satisfies the following concept requirements:
|
@requirement The class satisfies the following concept requirements:
|
||||||
-
|
-
|
||||||
[BidirectionalIterator](https://en.cppreference.com/w/cpp/concept/BidirectionalIterator):
|
[BidirectionalIterator](https://en.cppreference.com/w/cpp/named_req/BidirectionalIterator):
|
||||||
The iterator that can be moved can be moved in both directions (i.e.
|
The iterator that can be moved can be moved in both directions (i.e.
|
||||||
incremented and decremented).
|
incremented and decremented).
|
||||||
- [OutputIterator](https://en.cppreference.com/w/cpp/concept/OutputIterator):
|
- [OutputIterator](https://en.cppreference.com/w/cpp/named_req/OutputIterator):
|
||||||
It is possible to write to the pointed-to element (only if @a Base is
|
It is possible to write to the pointed-to element (only if @a Base is
|
||||||
@ref iterator).
|
@ref iterator).
|
||||||
|
|
||||||
@ -10907,42 +10907,42 @@ and `from_json()` (@ref adl_serializer by default)
|
|||||||
|
|
||||||
@requirement The class satisfies the following concept requirements:
|
@requirement The class satisfies the following concept requirements:
|
||||||
- Basic
|
- Basic
|
||||||
- [DefaultConstructible](https://en.cppreference.com/w/cpp/concept/DefaultConstructible):
|
- [DefaultConstructible](https://en.cppreference.com/w/cpp/named_req/DefaultConstructible):
|
||||||
JSON values can be default constructed. The result will be a JSON null
|
JSON values can be default constructed. The result will be a JSON null
|
||||||
value.
|
value.
|
||||||
- [MoveConstructible](https://en.cppreference.com/w/cpp/concept/MoveConstructible):
|
- [MoveConstructible](https://en.cppreference.com/w/cpp/named_req/MoveConstructible):
|
||||||
A JSON value can be constructed from an rvalue argument.
|
A JSON value can be constructed from an rvalue argument.
|
||||||
- [CopyConstructible](https://en.cppreference.com/w/cpp/concept/CopyConstructible):
|
- [CopyConstructible](https://en.cppreference.com/w/cpp/named_req/CopyConstructible):
|
||||||
A JSON value can be copy-constructed from an lvalue expression.
|
A JSON value can be copy-constructed from an lvalue expression.
|
||||||
- [MoveAssignable](https://en.cppreference.com/w/cpp/concept/MoveAssignable):
|
- [MoveAssignable](https://en.cppreference.com/w/cpp/named_req/MoveAssignable):
|
||||||
A JSON value van be assigned from an rvalue argument.
|
A JSON value van be assigned from an rvalue argument.
|
||||||
- [CopyAssignable](https://en.cppreference.com/w/cpp/concept/CopyAssignable):
|
- [CopyAssignable](https://en.cppreference.com/w/cpp/named_req/CopyAssignable):
|
||||||
A JSON value can be copy-assigned from an lvalue expression.
|
A JSON value can be copy-assigned from an lvalue expression.
|
||||||
- [Destructible](https://en.cppreference.com/w/cpp/concept/Destructible):
|
- [Destructible](https://en.cppreference.com/w/cpp/named_req/Destructible):
|
||||||
JSON values can be destructed.
|
JSON values can be destructed.
|
||||||
- Layout
|
- Layout
|
||||||
- [StandardLayoutType](https://en.cppreference.com/w/cpp/concept/StandardLayoutType):
|
- [StandardLayoutType](https://en.cppreference.com/w/cpp/named_req/StandardLayoutType):
|
||||||
JSON values have
|
JSON values have
|
||||||
[standard layout](https://en.cppreference.com/w/cpp/language/data_members#Standard_layout):
|
[standard layout](https://en.cppreference.com/w/cpp/language/data_members#Standard_layout):
|
||||||
All non-static data members are private and standard layout types, the
|
All non-static data members are private and standard layout types, the
|
||||||
class has no virtual functions or (virtual) base classes.
|
class has no virtual functions or (virtual) base classes.
|
||||||
- Library-wide
|
- Library-wide
|
||||||
- [EqualityComparable](https://en.cppreference.com/w/cpp/concept/EqualityComparable):
|
- [EqualityComparable](https://en.cppreference.com/w/cpp/named_req/EqualityComparable):
|
||||||
JSON values can be compared with `==`, see @ref
|
JSON values can be compared with `==`, see @ref
|
||||||
operator==(const_reference,const_reference).
|
operator==(const_reference,const_reference).
|
||||||
- [LessThanComparable](https://en.cppreference.com/w/cpp/concept/LessThanComparable):
|
- [LessThanComparable](https://en.cppreference.com/w/cpp/named_req/LessThanComparable):
|
||||||
JSON values can be compared with `<`, see @ref
|
JSON values can be compared with `<`, see @ref
|
||||||
operator<(const_reference,const_reference).
|
operator<(const_reference,const_reference).
|
||||||
- [Swappable](https://en.cppreference.com/w/cpp/concept/Swappable):
|
- [Swappable](https://en.cppreference.com/w/cpp/named_req/Swappable):
|
||||||
Any JSON lvalue or rvalue of can be swapped with any lvalue or rvalue of
|
Any JSON lvalue or rvalue of can be swapped with any lvalue or rvalue of
|
||||||
other compatible types, using unqualified function call @ref swap().
|
other compatible types, using unqualified function call @ref swap().
|
||||||
- [NullablePointer](https://en.cppreference.com/w/cpp/concept/NullablePointer):
|
- [NullablePointer](https://en.cppreference.com/w/cpp/named_req/NullablePointer):
|
||||||
JSON values can be compared against `std::nullptr_t` objects which are used
|
JSON values can be compared against `std::nullptr_t` objects which are used
|
||||||
to model the `null` value.
|
to model the `null` value.
|
||||||
- Container
|
- Container
|
||||||
- [Container](https://en.cppreference.com/w/cpp/concept/Container):
|
- [Container](https://en.cppreference.com/w/cpp/named_req/Container):
|
||||||
JSON values can be used like STL containers and provide iterator access.
|
JSON values can be used like STL containers and provide iterator access.
|
||||||
- [ReversibleContainer](https://en.cppreference.com/w/cpp/concept/ReversibleContainer);
|
- [ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer);
|
||||||
JSON values can be used like STL containers and provide reverse iterator
|
JSON values can be used like STL containers and provide reverse iterator
|
||||||
access.
|
access.
|
||||||
|
|
||||||
@ -12541,7 +12541,7 @@ class basic_json
|
|||||||
changes to any JSON value.
|
changes to any JSON value.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[Container](https://en.cppreference.com/w/cpp/concept/Container)
|
[Container](https://en.cppreference.com/w/cpp/named_req/Container)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is linear.
|
- The complexity is linear.
|
||||||
- As postcondition, it holds: `other == basic_json(other)`.
|
- As postcondition, it holds: `other == basic_json(other)`.
|
||||||
@ -12626,7 +12626,7 @@ class basic_json
|
|||||||
exceptions.
|
exceptions.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[MoveConstructible](https://en.cppreference.com/w/cpp/concept/MoveConstructible)
|
[MoveConstructible](https://en.cppreference.com/w/cpp/named_req/MoveConstructible)
|
||||||
requirements.
|
requirements.
|
||||||
|
|
||||||
@liveexample{The code below shows the move constructor explicitly called
|
@liveexample{The code below shows the move constructor explicitly called
|
||||||
@ -12660,7 +12660,7 @@ class basic_json
|
|||||||
@complexity Linear.
|
@complexity Linear.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[Container](https://en.cppreference.com/w/cpp/concept/Container)
|
[Container](https://en.cppreference.com/w/cpp/named_req/Container)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is linear.
|
- The complexity is linear.
|
||||||
|
|
||||||
@ -12697,7 +12697,7 @@ class basic_json
|
|||||||
@complexity Linear.
|
@complexity Linear.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[Container](https://en.cppreference.com/w/cpp/concept/Container)
|
[Container](https://en.cppreference.com/w/cpp/named_req/Container)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is linear.
|
- The complexity is linear.
|
||||||
- All stored elements are destroyed and all memory is freed.
|
- All stored elements are destroyed and all memory is freed.
|
||||||
@ -13328,8 +13328,8 @@ class basic_json
|
|||||||
@brief get a value (explicit)
|
@brief get a value (explicit)
|
||||||
|
|
||||||
Explicit type conversion between the JSON value and a compatible value
|
Explicit type conversion between the JSON value and a compatible value
|
||||||
which is [CopyConstructible](https://en.cppreference.com/w/cpp/concept/CopyConstructible)
|
which is [CopyConstructible](https://en.cppreference.com/w/cpp/named_req/CopyConstructible)
|
||||||
and [DefaultConstructible](https://en.cppreference.com/w/cpp/concept/DefaultConstructible).
|
and [DefaultConstructible](https://en.cppreference.com/w/cpp/named_req/DefaultConstructible).
|
||||||
The value is converted by calling the @ref json_serializer<ValueType>
|
The value is converted by calling the @ref json_serializer<ValueType>
|
||||||
`from_json()` method.
|
`from_json()` method.
|
||||||
|
|
||||||
@ -13389,8 +13389,8 @@ class basic_json
|
|||||||
@brief get a value (explicit); special case
|
@brief get a value (explicit); special case
|
||||||
|
|
||||||
Explicit type conversion between the JSON value and a compatible value
|
Explicit type conversion between the JSON value and a compatible value
|
||||||
which is **not** [CopyConstructible](https://en.cppreference.com/w/cpp/concept/CopyConstructible)
|
which is **not** [CopyConstructible](https://en.cppreference.com/w/cpp/named_req/CopyConstructible)
|
||||||
and **not** [DefaultConstructible](https://en.cppreference.com/w/cpp/concept/DefaultConstructible).
|
and **not** [DefaultConstructible](https://en.cppreference.com/w/cpp/named_req/DefaultConstructible).
|
||||||
The value is converted by calling the @ref json_serializer<ValueType>
|
The value is converted by calling the @ref json_serializer<ValueType>
|
||||||
`from_json()` method.
|
`from_json()` method.
|
||||||
|
|
||||||
@ -14754,7 +14754,7 @@ class basic_json
|
|||||||
@complexity Constant.
|
@complexity Constant.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[Container](https://en.cppreference.com/w/cpp/concept/Container)
|
[Container](https://en.cppreference.com/w/cpp/named_req/Container)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
|
|
||||||
@ -14793,7 +14793,7 @@ class basic_json
|
|||||||
@complexity Constant.
|
@complexity Constant.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[Container](https://en.cppreference.com/w/cpp/concept/Container)
|
[Container](https://en.cppreference.com/w/cpp/named_req/Container)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
- Has the semantics of `const_cast<const basic_json&>(*this).begin()`.
|
- Has the semantics of `const_cast<const basic_json&>(*this).begin()`.
|
||||||
@ -14825,7 +14825,7 @@ class basic_json
|
|||||||
@complexity Constant.
|
@complexity Constant.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[Container](https://en.cppreference.com/w/cpp/concept/Container)
|
[Container](https://en.cppreference.com/w/cpp/named_req/Container)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
|
|
||||||
@ -14864,7 +14864,7 @@ class basic_json
|
|||||||
@complexity Constant.
|
@complexity Constant.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[Container](https://en.cppreference.com/w/cpp/concept/Container)
|
[Container](https://en.cppreference.com/w/cpp/named_req/Container)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
- Has the semantics of `const_cast<const basic_json&>(*this).end()`.
|
- Has the semantics of `const_cast<const basic_json&>(*this).end()`.
|
||||||
@ -14894,7 +14894,7 @@ class basic_json
|
|||||||
@complexity Constant.
|
@complexity Constant.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[ReversibleContainer](https://en.cppreference.com/w/cpp/concept/ReversibleContainer)
|
[ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
- Has the semantics of `reverse_iterator(end())`.
|
- Has the semantics of `reverse_iterator(end())`.
|
||||||
@ -14931,7 +14931,7 @@ class basic_json
|
|||||||
@complexity Constant.
|
@complexity Constant.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[ReversibleContainer](https://en.cppreference.com/w/cpp/concept/ReversibleContainer)
|
[ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
- Has the semantics of `reverse_iterator(begin())`.
|
- Has the semantics of `reverse_iterator(begin())`.
|
||||||
@ -14968,7 +14968,7 @@ class basic_json
|
|||||||
@complexity Constant.
|
@complexity Constant.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[ReversibleContainer](https://en.cppreference.com/w/cpp/concept/ReversibleContainer)
|
[ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
- Has the semantics of `const_cast<const basic_json&>(*this).rbegin()`.
|
- Has the semantics of `const_cast<const basic_json&>(*this).rbegin()`.
|
||||||
@ -14997,7 +14997,7 @@ class basic_json
|
|||||||
@complexity Constant.
|
@complexity Constant.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[ReversibleContainer](https://en.cppreference.com/w/cpp/concept/ReversibleContainer)
|
[ReversibleContainer](https://en.cppreference.com/w/cpp/named_req/ReversibleContainer)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
- Has the semantics of `const_cast<const basic_json&>(*this).rend()`.
|
- Has the semantics of `const_cast<const basic_json&>(*this).rend()`.
|
||||||
@ -15195,7 +15195,7 @@ class basic_json
|
|||||||
false in the case of a string.
|
false in the case of a string.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[Container](https://en.cppreference.com/w/cpp/concept/Container)
|
[Container](https://en.cppreference.com/w/cpp/named_req/Container)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
- Has the semantics of `begin() == end()`.
|
- Has the semantics of `begin() == end()`.
|
||||||
@ -15266,7 +15266,7 @@ class basic_json
|
|||||||
the case of a string.
|
the case of a string.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[Container](https://en.cppreference.com/w/cpp/concept/Container)
|
[Container](https://en.cppreference.com/w/cpp/named_req/Container)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
- Has the semantics of `std::distance(begin(), end())`.
|
- Has the semantics of `std::distance(begin(), end())`.
|
||||||
@ -15336,7 +15336,7 @@ class basic_json
|
|||||||
@exceptionsafety No-throw guarantee: this function never throws exceptions.
|
@exceptionsafety No-throw guarantee: this function never throws exceptions.
|
||||||
|
|
||||||
@requirement This function helps `basic_json` satisfying the
|
@requirement This function helps `basic_json` satisfying the
|
||||||
[Container](https://en.cppreference.com/w/cpp/concept/Container)
|
[Container](https://en.cppreference.com/w/cpp/named_req/Container)
|
||||||
requirements:
|
requirements:
|
||||||
- The complexity is constant.
|
- The complexity is constant.
|
||||||
- Has the semantics of returning `b.size()` where `b` is the largest
|
- Has the semantics of returning `b.size()` where `b` is the largest
|
||||||
|
Loading…
Reference in New Issue
Block a user