This commit is contained in:
nlohmann
2026-10-03 05:43:12 +00:00
parent 2aaa1d24ef
commit a410b4f40f
741 changed files with 8115 additions and 2252 deletions
+11
View File
@@ -10,6 +10,10 @@ Return the last reference token.
Last reference token.
## Exception safety
Strong exception safety: if an exception occurs, the original value stays intact.
## Exceptions
Throws [out_of_range.405](../../home/exceptions.md#jsonexceptionout_of_range405) if the JSON pointer has no parent.
@@ -34,6 +38,13 @@ Constant.
--8<-- "examples/json_pointer__back.output"
```
## See also
- [front](front.md) return first reference token
- [pop_back](pop_back.md) remove the last reference token
- [push_back](push_back.md) append an unescaped token at the end of the pointer
- [parent_pointer](parent_pointer.md) returns the parent of this JSON pointer
## Version history
- Added in version 3.6.0.
File diff suppressed because one or more lines are too long
+11
View File
@@ -10,6 +10,10 @@ Return the last reference token.
Last reference token.
## Exception safety
Strong exception safety: if an exception occurs, the original value stays intact.
## Exceptions
Throws [out_of_range.405](https://json.nlohmann.me/home/exceptions/#jsonexceptionout_of_range405) if the JSON pointer has no parent.
@@ -49,6 +53,13 @@ last reference token of "/foo" is "foo"
last reference token of "/foo/0" is "0"
```
## See also
- [front](https://json.nlohmann.me/api/json_pointer/front/index.md) return first reference token
- [pop_back](https://json.nlohmann.me/api/json_pointer/pop_back/index.md) remove the last reference token
- [push_back](https://json.nlohmann.me/api/json_pointer/push_back/index.md) append an unescaped token at the end of the pointer
- [parent_pointer](https://json.nlohmann.me/api/json_pointer/parent_pointer/index.md) returns the parent of this JSON pointer
## Version history
- Added in version 3.6.0.
+6
View File
@@ -34,6 +34,12 @@ Constant.
--8<-- "examples/json_pointer__empty.output"
```
## See also
- [front](front.md) return first reference token
- [back](back.md) return last reference token
- [to_string](to_string.md) return a string representation of the JSON pointer
## Version history
Added in version 3.6.0.
File diff suppressed because one or more lines are too long
+6
View File
@@ -56,6 +56,12 @@ Output:
"/foo/0": false
```
## See also
- [front](https://json.nlohmann.me/api/json_pointer/front/index.md) return first reference token
- [back](https://json.nlohmann.me/api/json_pointer/back/index.md) return last reference token
- [to_string](https://json.nlohmann.me/api/json_pointer/to_string/index.md) return a string representation of the JSON pointer
## Version history
Added in version 3.6.0.
+10
View File
@@ -10,6 +10,10 @@ Return the first reference token.
First reference token.
## Exception safety
Strong exception safety: if an exception occurs, the original value stays intact.
## Exceptions
Throws [out_of_range.405](../../home/exceptions.md#jsonexceptionout_of_range405) if the JSON pointer has no parent.
@@ -34,6 +38,12 @@ Constant.
--8<-- "examples/json_pointer__front.output"
```
## See also
- [back](back.md) return last reference token
- [pop_front](pop_front.md) remove the first reference token
- [push_front](push_front.md) append an unescaped token at the start of the pointer
## Version history
- Added in version 3.13.0.
File diff suppressed because one or more lines are too long
+11 -1
View File
@@ -10,6 +10,10 @@ Return the first reference token.
First reference token.
## Exception safety
Strong exception safety: if an exception occurs, the original value stays intact.
## Exceptions
Throws [out_of_range.405](https://json.nlohmann.me/home/exceptions/#jsonexceptionout_of_range405) if the JSON pointer has no parent.
@@ -49,6 +53,12 @@ first reference token of "/foo" is "foo"
first reference token of "/foo/0" is "foo"
```
## See also
- [back](https://json.nlohmann.me/api/json_pointer/back/index.md) return last reference token
- [pop_front](https://json.nlohmann.me/api/json_pointer/pop_front/index.md) remove the first reference token
- [push_front](https://json.nlohmann.me/api/json_pointer/push_front/index.md) append an unescaped token at the start of the pointer
## Version history
- Added in version 3.13.0.
- Added in version 3.13.0 unreleased.
File diff suppressed because one or more lines are too long
+17 -1
View File
@@ -15,6 +15,21 @@ Deprecation
For backwards compatibility `RefStringType` may also be a specialization of [`basic_json`](https://json.nlohmann.me/api/basic_json/index.md) in which case `string_t` will be deduced as [`basic_json::string_t`](https://json.nlohmann.me/api/basic_json/string_t/index.md). This feature is deprecated and may be removed in a future major version.
See the [migration guide](https://json.nlohmann.me/integration/migration_guide/#json-pointers) for how to update existing code.
A JSON pointer is internally a sequence of reference tokens. [`front`](https://json.nlohmann.me/api/json_pointer/front/index.md), [`pop_front`](https://json.nlohmann.me/api/json_pointer/pop_front/index.md), and [`push_front`](https://json.nlohmann.me/api/json_pointer/push_front/index.md) act on the first reference token, whereas [`back`](https://json.nlohmann.me/api/json_pointer/back/index.md), [`pop_back`](https://json.nlohmann.me/api/json_pointer/pop_back/index.md), and [`push_back`](https://json.nlohmann.me/api/json_pointer/push_back/index.md) act on the last one. [`parent_pointer`](https://json.nlohmann.me/api/json_pointer/parent_pointer/index.md) returns a new JSON pointer with the last reference token removed (like a non-mutating [`pop_back`](https://json.nlohmann.me/api/json_pointer/pop_back/index.md)):
```
flowchart LR
A["a"] --> B["b"] --> C["c"]
front["front() / pop_front() / push_front()"] -.-> A
back["back() / pop_back() / push_back()"] -.-> C
parent["parent_pointer() returns /a/b"] -.-> B
```
The diagram shows the reference tokens of the JSON pointer `/a/b/c`.
## Member types
- [**string_t**](https://json.nlohmann.me/api/json_pointer/string_t/index.md) - the string type used for the reference tokens
@@ -23,9 +38,10 @@ For backwards compatibility `RefStringType` may also be a specialization of [`ba
- [(constructor)](https://json.nlohmann.me/api/json_pointer/json_pointer/index.md)
- [**to_string**](https://json.nlohmann.me/api/json_pointer/to_string/index.md) - return a string representation of the JSON pointer
- [**operator string_t**](https://json.nlohmann.me/api/json_pointer/operator_string_t/index.md) - return a string representation of the JSON pointer
- [**operator string_t**](https://json.nlohmann.me/api/json_pointer/operator_string_t/index.md) - return a string representation of the JSON pointer (deprecated)
- [**operator==**](https://json.nlohmann.me/api/json_pointer/operator_eq/index.md) - compare: equal
- [**operator!=**](https://json.nlohmann.me/api/json_pointer/operator_ne/index.md) - compare: not equal
- [**operator\<=>**](https://json.nlohmann.me/api/json_pointer/operator_spaceship/index.md) - compare: 3-way (C++20)
- [**operator/=**](https://json.nlohmann.me/api/json_pointer/operator_slasheq/index.md) - append to the end of the JSON pointer
- [**operator/**](https://json.nlohmann.me/api/json_pointer/operator_slash/index.md) - create JSON Pointer by appending
- [**parent_pointer**](https://json.nlohmann.me/api/json_pointer/parent_pointer/index.md) - returns the parent of this JSON pointer
+13
View File
@@ -12,6 +12,10 @@ Create a JSON pointer according to the syntax described in
`s` (in)
: string representing the JSON pointer; if omitted, the empty string is assumed which references the whole JSON value
## Exception safety
Strong guarantee: if an exception is thrown, there are no changes to any JSON pointer.
## Exceptions
- Throws [parse_error.107](../../home/exceptions.md#jsonexceptionparse_error107) if the given JSON pointer `s` is
@@ -19,6 +23,10 @@ Create a JSON pointer according to the syntax described in
- Throws [parse_error.108](../../home/exceptions.md#jsonexceptionparse_error108) if a tilde (`~`) in the given JSON
pointer `s` is not followed by `0` (representing `~`) or `1` (representing `/`); see example below.
## Complexity
Linear in the length of `s`.
## Examples
??? example
@@ -35,6 +43,11 @@ Create a JSON pointer according to the syntax described in
--8<-- "examples/json_pointer.output"
```
## See also
- [JSON Pointer](../../features/json_pointer.md) - the article on JSON Pointer support
- [operator""_json_pointer](../operator_literal_json_pointer.md) user-defined string literal for JSON pointers
## Version history
- Added in version 2.0.0.
File diff suppressed because one or more lines are too long
+13
View File
@@ -10,11 +10,19 @@ Create a JSON pointer according to the syntax described in [Section 3 of RFC6901
`s` (in) : string representing the JSON pointer; if omitted, the empty string is assumed which references the whole JSON value
## Exception safety
Strong guarantee: if an exception is thrown, there are no changes to any JSON pointer.
## Exceptions
- Throws [parse_error.107](https://json.nlohmann.me/home/exceptions/#jsonexceptionparse_error107) if the given JSON pointer `s` is nonempty and does not begin with a slash (`/`); see example below.
- Throws [parse_error.108](https://json.nlohmann.me/home/exceptions/#jsonexceptionparse_error108) if a tilde (`~`) in the given JSON pointer `s` is not followed by `0` (representing `~`) or `1` (representing `/`); see example below.
## Complexity
Linear in the length of `s`.
## Examples
Example
@@ -79,6 +87,11 @@ Output:
[json.exception.parse_error.108] parse error: escape character '~' must be followed with '0' or '1'
```
## See also
- [JSON Pointer](https://json.nlohmann.me/features/json_pointer/index.md) - the article on JSON Pointer support
- [operator""\_json_pointer](https://json.nlohmann.me/api/operator_literal_json_pointer/index.md) user-defined string literal for JSON pointers
## Version history
- Added in version 2.0.0.
+7
View File
@@ -77,6 +77,8 @@ tokens.
Overload 2 is deprecated and will be removed in a future major version release.
See the [migration guide](../../integration/migration_guide.md#json-pointers) for how to update existing code.
## Examples
??? example "Example: (1) Comparing JSON pointers"
@@ -107,6 +109,11 @@ tokens.
--8<-- "examples/json_pointer__operator__equal_stringtype.output"
```
## See also
- [operator!=](operator_ne.md) compare for inequality
- [operator<=>](operator_spaceship.md) comparison: 3-way (C++20)
## Version history
1. Added in version 2.1.0. Added C++20 member functions in version 3.11.2.
File diff suppressed because one or more lines are too long
+7
View File
@@ -68,6 +68,8 @@ Deprecation
Overload 2 is deprecated and will be removed in a future major version release.
See the [migration guide](https://json.nlohmann.me/integration/migration_guide/#json-pointers) for how to update existing code.
## Examples
Example: (1) Comparing JSON pointers
@@ -154,6 +156,11 @@ Output:
"bar" == "/foo": [json.exception.parse_error.107] parse error at byte 1: JSON pointer must be empty or begin with '/' - was: 'bar'
```
## See also
- [operator!=](https://json.nlohmann.me/api/json_pointer/operator_ne/index.md) compare for inequality
- [operator\<=>](https://json.nlohmann.me/api/json_pointer/operator_spaceship/index.md) comparison: 3-way (C++20)
## Version history
1. Added in version 2.1.0. Added C++20 member functions in version 3.11.2.
+7
View File
@@ -73,6 +73,8 @@ tokens.
Overload 2 is deprecated and will be removed in a future major version release.
See the [migration guide](../../integration/migration_guide.md#json-pointers) for how to update existing code.
## Examples
??? example "Example: (1) Comparing JSON pointers"
@@ -103,6 +105,11 @@ tokens.
--8<-- "examples/json_pointer__operator__notequal_stringtype.output"
```
## See also
- [operator==](operator_eq.md) compare for equality
- [operator<=>](operator_spaceship.md) comparison: 3-way (C++20)
## Version history
1. Added in version 2.1.0.
File diff suppressed because one or more lines are too long
+7
View File
@@ -63,6 +63,8 @@ Deprecation
Overload 2 is deprecated and will be removed in a future major version release.
See the [migration guide](https://json.nlohmann.me/integration/migration_guide/#json-pointers) for how to update existing code.
## Examples
Example: (1) Comparing JSON pointers
@@ -148,6 +150,11 @@ Output:
"bar" != "/foo": [json.exception.parse_error.107] parse error at byte 1: JSON pointer must be empty or begin with '/' - was: 'bar'
```
## See also
- [operator==](https://json.nlohmann.me/api/json_pointer/operator_eq/index.md) compare for equality
- [operator\<=>](https://json.nlohmann.me/api/json_pointer/operator_spaceship/index.md) comparison: 3-way (C++20)
## Version history
1. Added in version 2.1.0.
+10
View File
@@ -35,6 +35,11 @@ json_pointer operator/(const json_pointer& lhs, std::size_t array_idx);
2. a new JSON pointer with unescaped `token` appended to `lhs`
3. a new JSON pointer with `array_idx` appended to `lhs`
## Exception safety
Strong guarantee: if an exception is thrown, there are no changes to any JSON pointer. The operands are not modified;
a new JSON pointer is built from a copy of `lhs`.
## Complexity
1. Linear in the length of `lhs` and `rhs`.
@@ -57,6 +62,11 @@ json_pointer operator/(const json_pointer& lhs, std::size_t array_idx);
--8<-- "examples/json_pointer__operator_add_binary.output"
```
## See also
- [operator/=](operator_slasheq.md) append to the end of the JSON pointer
- [push_back](push_back.md) append an unescaped token at the end of the pointer
## Version history
1. Added in version 3.6.0.
File diff suppressed because one or more lines are too long
+9
View File
@@ -31,6 +31,10 @@ json_pointer operator/(const json_pointer& lhs, std::size_t array_idx);
1. a new JSON pointer with unescaped `token` appended to `lhs`
1. a new JSON pointer with `array_idx` appended to `lhs`
## Exception safety
Strong guarantee: if an exception is thrown, there are no changes to any JSON pointer. The operands are not modified; a new JSON pointer is built from a copy of `lhs`.
## Complexity
1. Linear in the length of `lhs` and `rhs`.
@@ -73,6 +77,11 @@ Output:
"/foo/42"
```
## See also
- [operator/=](https://json.nlohmann.me/api/json_pointer/operator_slasheq/index.md) append to the end of the JSON pointer
- [push_back](https://json.nlohmann.me/api/json_pointer/push_back/index.md) append an unescaped token at the end of the pointer
## Version history
1. Added in version 3.6.0.
+12
View File
@@ -32,6 +32,13 @@ json_pointer& operator/=(std::size_t array_idx)
2. JSON pointer with `token` appended without escaping `token`
3. JSON pointer with `array_idx` appended
## Exception safety
1. Basic guarantee: if an exception is thrown (for instance, if copying a reference token fails), the JSON pointer is
left in a valid state, but it may contain some of the reference tokens of `ptr`.
2. Strong guarantee: if an exception is thrown, there are no changes to the JSON pointer.
3. Strong guarantee: if an exception is thrown, there are no changes to the JSON pointer.
## Complexity
1. Linear in the length of `ptr`.
@@ -54,6 +61,11 @@ json_pointer& operator/=(std::size_t array_idx)
--8<-- "examples/json_pointer__operator_add.output"
```
## See also
- [operator/](operator_slash.md) create JSON Pointer by appending
- [push_back](push_back.md) append an unescaped token at the end of the pointer
## Version history
1. Added in version 3.6.0.
File diff suppressed because one or more lines are too long
@@ -29,6 +29,12 @@ json_pointer& operator/=(std::size_t array_idx)
1. JSON pointer with `token` appended without escaping `token`
1. JSON pointer with `array_idx` appended
## Exception safety
1. Basic guarantee: if an exception is thrown (for instance, if copying a reference token fails), the JSON pointer is left in a valid state, but it may contain some of the reference tokens of `ptr`.
1. Strong guarantee: if an exception is thrown, there are no changes to the JSON pointer.
1. Strong guarantee: if an exception is thrown, there are no changes to the JSON pointer.
## Complexity
1. Linear in the length of `ptr`.
@@ -76,6 +82,11 @@ Output:
"/foo/bar/baz/fob/42"
```
## See also
- [operator/](https://json.nlohmann.me/api/json_pointer/operator_slash/index.md) create JSON Pointer by appending
- [push_back](https://json.nlohmann.me/api/json_pointer/push_back/index.md) append an unescaped token at the end of the pointer
## Version history
1. Added in version 3.6.0.
+74
View File
@@ -0,0 +1,74 @@
# <small>nlohmann::json_pointer::</small>operator<=>
```cpp
// since C++20
class json_pointer {
template<typename RefStringTypeRhs>
std::strong_ordering operator<=>(const json_pointer<RefStringTypeRhs>& rhs) const noexcept; // *NOPAD*
};
```
3-way compares two JSON pointers by lexicographically comparing their sequences of reference tokens: corresponding
reference tokens are compared with `string_t`'s own `operator<=>`, and the first pair of tokens that differs
determines the result. If all corresponding reference tokens compare equal, the JSON pointer with fewer reference
tokens is ordered first.
## Template parameters
`RefStringTypeRhs`
: the string type of the right-hand side JSON pointer
## Parameters
`rhs` (in)
: JSON pointer to compare `*this` with
## Return value
the `std::strong_ordering` of the 3-way comparison of `*this` and `rhs`
## Exception safety
No-throw guarantee: this function never throws exceptions.
## Complexity
Linear in the number of reference tokens.
## Notes
!!! note "Ordering enables use as an associative container key"
Together with [`operator==`](operator_eq.md), `operator<=>` makes `json_pointer` a `LessThanComparable` type, so
it can be used as the key type of ordered associative containers such as `std::map` or `std::set`.
!!! note "Before C++20"
Without C++20's three-way comparison, `json_pointer` provides a non-member `operator<` instead, which orders JSON
pointers the same way. JSON pointers can therefore be used as keys of ordered associative containers with any
supported C++ standard.
## Examples
??? example
The example demonstrates 3-way comparing JSON pointers.
```cpp
--8<-- "examples/json_pointer__operator_spaceship.c++20.cpp"
```
Output:
```
--8<-- "examples/json_pointer__operator_spaceship.c++20.output"
```
## See also
- [operator==](operator_eq.md) compare: equal
- [operator!=](operator_ne.md) compare: not equal
## Version history
- Added in version 3.11.2.
File diff suppressed because one or more lines are too long
@@ -0,0 +1,99 @@
# nlohmann::json_pointer::operator\<=>
```
// since C++20
class json_pointer {
template<typename RefStringTypeRhs>
std::strong_ordering operator<=>(const json_pointer<RefStringTypeRhs>& rhs) const noexcept; // *NOPAD*
};
```
3-way compares two JSON pointers by lexicographically comparing their sequences of reference tokens: corresponding reference tokens are compared with `string_t`'s own `operator<=>`, and the first pair of tokens that differs determines the result. If all corresponding reference tokens compare equal, the JSON pointer with fewer reference tokens is ordered first.
## Template parameters
`RefStringTypeRhs` : the string type of the right-hand side JSON pointer
## Parameters
`rhs` (in) : JSON pointer to compare `*this` with
## Return value
the `std::strong_ordering` of the 3-way comparison of `*this` and `rhs`
## Exception safety
No-throw guarantee: this function never throws exceptions.
## Complexity
Linear in the number of reference tokens.
## Notes
Ordering enables use as an associative container key
Together with [`operator==`](https://json.nlohmann.me/api/json_pointer/operator_eq/index.md), `operator<=>` makes `json_pointer` a `LessThanComparable` type, so it can be used as the key type of ordered associative containers such as `std::map` or `std::set`.
Before C++20
Without C++20's three-way comparison, `json_pointer` provides a non-member `operator<` instead, which orders JSON pointers the same way. JSON pointers can therefore be used as keys of ordered associative containers with any supported C++ standard.
## Examples
Example
The example demonstrates 3-way comparing JSON pointers.
```
#include <compare>
#include <iostream>
#include <nlohmann/json.hpp>
using json = nlohmann::json;
const char* to_string(const std::strong_ordering& so)
{
if (std::is_lt(so))
{
return "less";
}
else if (std::is_gt(so))
{
return "greater";
}
return "equal";
}
int main()
{
// different JSON pointers
json::json_pointer ptr1("/a/b");
json::json_pointer ptr2("/a/c");
json::json_pointer ptr3("/a/b/c");
json::json_pointer ptr4("/a/b");
// 3-way compare JSON pointers
std::cout << "\"" << ptr1 << "\" <=> \"" << ptr2 << "\": " << to_string(ptr1 <=> ptr2) << '\n' // *NOPAD*
<< "\"" << ptr1 << "\" <=> \"" << ptr3 << "\": " << to_string(ptr1 <=> ptr3) << '\n' // *NOPAD*
<< "\"" << ptr1 << "\" <=> \"" << ptr4 << "\": " << to_string(ptr1 <=> ptr4) << std::endl; // *NOPAD*
}
```
Output:
```
"/a/b" <=> "/a/c": less
"/a/b" <=> "/a/b/c": less
"/a/b" <=> "/a/b": equal
```
## See also
- [operator==](https://json.nlohmann.me/api/json_pointer/operator_eq/index.md) compare: equal
- [operator!=](https://json.nlohmann.me/api/json_pointer/operator_ne/index.md) compare: not equal
## Version history
- Added in version 3.11.2.
+4 -1
View File
@@ -26,6 +26,8 @@ operator string_t() const
This function is deprecated in favor of [`to_string`](to_string.md) and will be removed in a future major version
release.
See the [migration guide](../../integration/migration_guide.md#json-pointers) for how to update existing code.
## Examples
??? example
@@ -44,7 +46,8 @@ operator string_t() const
## See also
- [string_t](../basic_json/string_t.md)- type for strings
- [to_string](to_string.md) return a string representation of the JSON pointer
- [string_t](../basic_json/string_t.md) - type for strings
## Version history
File diff suppressed because one or more lines are too long
+4 -1
View File
@@ -25,6 +25,8 @@ Deprecation
This function is deprecated in favor of [`to_string`](https://json.nlohmann.me/api/json_pointer/to_string/index.md) and will be removed in a future major version release.
See the [migration guide](https://json.nlohmann.me/integration/migration_guide/#json-pointers) for how to update existing code.
## Examples
Example
@@ -62,7 +64,8 @@ Output:
## See also
- [string_t](https://json.nlohmann.me/api/basic_json/string_t/index.md)- type for strings
- [to_string](https://json.nlohmann.me/api/json_pointer/to_string/index.md) return a string representation of the JSON pointer
- [string_t](https://json.nlohmann.me/api/basic_json/string_t/index.md) - type for strings
## Version history
File diff suppressed because one or more lines are too long
+10
View File
@@ -6,6 +6,10 @@ void pop_back();
Remove the last reference token.
## Exception safety
Strong exception safety: if an exception occurs, the original value stays intact.
## Exceptions
Throws [out_of_range.405](../../home/exceptions.md#jsonexceptionout_of_range405) if the JSON pointer has no parent.
@@ -30,6 +34,12 @@ Constant.
--8<-- "examples/json_pointer__pop_back.output"
```
## See also
- [back](back.md) return last reference token
- [push_back](push_back.md) append an unescaped token at the end of the pointer
- [parent_pointer](parent_pointer.md) returns the parent of this JSON pointer
## Version history
Added in version 3.6.0.
File diff suppressed because one or more lines are too long
+10
View File
@@ -6,6 +6,10 @@ void pop_back();
Remove the last reference token.
## Exception safety
Strong exception safety: if an exception occurs, the original value stays intact.
## Exceptions
Throws [out_of_range.405](https://json.nlohmann.me/home/exceptions/#jsonexceptionout_of_range405) if the JSON pointer has no parent.
@@ -53,6 +57,12 @@ Output:
""
```
## See also
- [back](https://json.nlohmann.me/api/json_pointer/back/index.md) return last reference token
- [push_back](https://json.nlohmann.me/api/json_pointer/push_back/index.md) append an unescaped token at the end of the pointer
- [parent_pointer](https://json.nlohmann.me/api/json_pointer/parent_pointer/index.md) returns the parent of this JSON pointer
## Version history
Added in version 3.6.0.
+9
View File
@@ -6,6 +6,10 @@ void pop_front();
Remove the first reference token.
## Exception safety
Strong exception safety: if an exception occurs, the original value stays intact.
## Exceptions
Throws [out_of_range.405](../../home/exceptions.md#jsonexceptionout_of_range405) if the JSON pointer has no parent.
@@ -30,6 +34,11 @@ Linear in the number of reference tokens in the `json_pointer`.
--8<-- "examples/json_pointer__pop_front.output"
```
## See also
- [front](front.md) return first reference token
- [push_front](push_front.md) append an unescaped token at the start of the pointer
## Version history
- Added in version 3.13.0.
File diff suppressed because one or more lines are too long
+10 -1
View File
@@ -6,6 +6,10 @@ void pop_front();
Remove the first reference token.
## Exception safety
Strong exception safety: if an exception occurs, the original value stays intact.
## Exceptions
Throws [out_of_range.405](https://json.nlohmann.me/home/exceptions/#jsonexceptionout_of_range405) if the JSON pointer has no parent.
@@ -53,6 +57,11 @@ Output:
""
```
## See also
- [front](https://json.nlohmann.me/api/json_pointer/front/index.md) return first reference token
- [push_front](https://json.nlohmann.me/api/json_pointer/push_front/index.md) append an unescaped token at the start of the pointer
## Version history
- Added in version 3.13.0.
- Added in version 3.13.0 unreleased.
+11
View File
@@ -13,6 +13,10 @@ Append an unescaped token at the end of the reference pointer.
`token` (in)
: token to add
## Exception safety
Strong exception safety: if an exception occurs, the original value stays intact.
## Complexity
Amortized constant.
@@ -33,6 +37,13 @@ Amortized constant.
--8<-- "examples/json_pointer__push_back.output"
```
## See also
- [back](back.md) return last reference token
- [pop_back](pop_back.md) remove the last reference token
- [operator/=](operator_slasheq.md) append to the end of the JSON pointer
- [operator/](operator_slash.md) create JSON Pointer by appending
## Version history
- Added in version 3.6.0.
File diff suppressed because one or more lines are too long
+11
View File
@@ -12,6 +12,10 @@ Append an unescaped token at the end of the reference pointer.
`token` (in) : token to add
## Exception safety
Strong exception safety: if an exception occurs, the original value stays intact.
## Complexity
Amortized constant.
@@ -55,6 +59,13 @@ Output:
"/foo/0/bar"
```
## See also
- [back](https://json.nlohmann.me/api/json_pointer/back/index.md) return last reference token
- [pop_back](https://json.nlohmann.me/api/json_pointer/pop_back/index.md) remove the last reference token
- [operator/=](https://json.nlohmann.me/api/json_pointer/operator_slasheq/index.md) append to the end of the JSON pointer
- [operator/](https://json.nlohmann.me/api/json_pointer/operator_slash/index.md) create JSON Pointer by appending
## Version history
- Added in version 3.6.0.
+10
View File
@@ -13,6 +13,11 @@ Append an unescaped token at the start of the reference pointer.
`token` (in)
: token to add
## Exception safety
Basic guarantee: if an exception is thrown (for instance, if copying the reference token fails), the JSON pointer is
left in a valid state, but its reference tokens may have changed.
## Complexity
Linear in the number of reference tokens in the `json_pointer`.
@@ -33,6 +38,11 @@ Linear in the number of reference tokens in the `json_pointer`.
--8<-- "examples/json_pointer__push_front.output"
```
## See also
- [front](front.md) return first reference token
- [pop_front](pop_front.md) remove the first reference token
## Version history
- Added in version 3.13.0.
File diff suppressed because one or more lines are too long
+10 -1
View File
@@ -12,6 +12,10 @@ Append an unescaped token at the start of the reference pointer.
`token` (in) : token to add
## Exception safety
Basic guarantee: if an exception is thrown (for instance, if copying the reference token fails), the JSON pointer is left in a valid state, but its reference tokens may have changed.
## Complexity
Linear in the number of reference tokens in the `json_pointer`.
@@ -55,6 +59,11 @@ Output:
"/bar/0/foo"
```
## See also
- [front](https://json.nlohmann.me/api/json_pointer/front/index.md) return first reference token
- [pop_front](https://json.nlohmann.me/api/json_pointer/pop_front/index.md) remove the first reference token
## Version history
- Added in version 3.13.0.
- Added in version 3.13.0 unreleased.
+5
View File
@@ -23,6 +23,11 @@ See [`basic_json::string_t`](../basic_json/string_t.md) for more information.
--8<-- "examples/json_pointer__string_t.output"
```
## See also
- [basic_json::string_t](../basic_json/string_t.md) type used to store JSON strings
- [to_string](to_string.md) return a string representation of the JSON pointer
## Version history
- Added in version 3.11.0.
File diff suppressed because one or more lines are too long
+5
View File
@@ -37,6 +37,11 @@ This is a string.
true
```
## See also
- [basic_json::string_t](https://json.nlohmann.me/api/basic_json/string_t/index.md) type used to store JSON strings
- [to_string](https://json.nlohmann.me/api/json_pointer/to_string/index.md) return a string representation of the JSON pointer
## Version history
- Added in version 3.11.0.
+13
View File
@@ -10,6 +10,14 @@ Return a string representation of the JSON pointer.
A string representation of the JSON pointer
## Exception safety
Strong exception safety: if an exception occurs, the original value stays intact.
## Complexity
Linear in the total length of the reference tokens.
## Notes
For each JSON pointer `ptr`, it holds:
@@ -34,6 +42,11 @@ ptr == json_pointer(ptr.to_string());
--8<-- "examples/json_pointer__to_string.output"
```
## See also
- [operator string_t](operator_string_t.md) return a string representation of the JSON pointer (deprecated)
- [operator<<](../operator_ltlt.md) write a JSON pointer to a stream
## Version history
- Since version 2.0.0.
File diff suppressed because one or more lines are too long
+13
View File
@@ -10,6 +10,14 @@ Return a string representation of the JSON pointer.
A string representation of the JSON pointer
## Exception safety
Strong exception safety: if an exception occurs, the original value stays intact.
## Complexity
Linear in the total length of the reference tokens.
## Notes
For each JSON pointer `ptr`, it holds:
@@ -78,6 +86,11 @@ Output:
"/m~0n"
```
## See also
- [operator string_t](https://json.nlohmann.me/api/json_pointer/operator_string_t/index.md) return a string representation of the JSON pointer (deprecated)
- [operator\<<](https://json.nlohmann.me/api/operator_ltlt/index.md) write a JSON pointer to a stream
## Version history
- Since version 2.0.0.