= Reference
:mrdocs:

== Namespaces

[cols=2]
|===
| Name
| Description
| link:#nlohmann[`nlohmann`] 
| namespace for Niels Lohmann
|===

== Using Declarations

[cols=1]
|===
| Name
| link:#_10using-0a[`Unnamed using`] 
| link:#_10using-0e[`Unnamed using`] 
|===

== link:#nlohmann[nlohmann] namespace

namespace for Niels Lohmann

=== Types

[cols=2]
|===
| Name
| Description
| link:#nlohmann-adl_serializer[`adl&lowbar;serializer`] 
| default JSONSerializer template argument
| link:#nlohmann-basic_json-0e[`basic&lowbar;json&lt;&gt;`] 
| 
| link:#nlohmann-basic_json-00[`basic&lowbar;json`] 
| a class to store JSON values
| link:#nlohmann-byte_container_with_subtype-04[`byte&lowbar;container&lowbar;with&lowbar;subtype`] 
| an internal type for a backed binary type
| link:#nlohmann-byte_container_with_subtype-09[`byte&lowbar;container&lowbar;with&lowbar;subtype&lt;vector&lt;unsigned char&gt;&gt;`] 
| 
| link:#nlohmann-json_pointer-0b[`json&lowbar;pointer`] 
| 
| link:#nlohmann-json_pointer-0a[`json&lowbar;pointer`] 
| JSON Pointer defines a string syntax for identifying a specific value within a JSON document
| link:#nlohmann-ordered_map[`ordered&lowbar;map`] 
| a minimal map&hyphen;like container that preserves insertion order
| link:#nlohmann-json[`json`] 
| default specialization
| link:#nlohmann-ordered_json[`ordered&lowbar;json`] 
| specialization that maintains the insertion order of object keys
|===

=== Functions

[cols=2]
|===
| Name
| Description
| link:#nlohmann-2function-05[`Unnamed overloads`] 
| 
| link:#nlohmann-operator_rshift-0a[`operator&gt;&gt;`] 
| Right shift operators
| link:#nlohmann-swap-0e[`swap`] 
| exchanges the values
| link:#nlohmann-to_string[`to&lowbar;string`] 
| user&hyphen;defined to&lowbar;string function for JSON values
| link:#nlohmann-operator_lshift-05e[`operator&lt;&lt;`] 
| Left shift operators
|===

== See Also

https&colon;&sol;&sol;github&period;com&sol;nlohmann

namespace for Niels Lohmann

== Types

[cols=2]
|===
| Name
| Description
| link:#nlohmann-adl_serializer[`adl&lowbar;serializer`] 
| default JSONSerializer template argument
| link:#nlohmann-basic_json-0e[`basic&lowbar;json&lt;&gt;`] 
| 
| link:#nlohmann-basic_json-00[`basic&lowbar;json`] 
| a class to store JSON values
| link:#nlohmann-byte_container_with_subtype-04[`byte&lowbar;container&lowbar;with&lowbar;subtype`] 
| an internal type for a backed binary type
| link:#nlohmann-byte_container_with_subtype-09[`byte&lowbar;container&lowbar;with&lowbar;subtype&lt;vector&lt;unsigned char&gt;&gt;`] 
| 
| link:#nlohmann-json_pointer-0b[`json&lowbar;pointer`] 
| 
| link:#nlohmann-json_pointer-0a[`json&lowbar;pointer`] 
| JSON Pointer defines a string syntax for identifying a specific value within a JSON document
| link:#nlohmann-ordered_map[`ordered&lowbar;map`] 
| a minimal map&hyphen;like container that preserves insertion order
| link:#nlohmann-json[`json`] 
| default specialization
| link:#nlohmann-ordered_json[`ordered&lowbar;json`] 
| specialization that maintains the insertion order of object keys
|===

== Functions

[cols=2]
|===
| Name
| Description
| link:#nlohmann-2function-05[`Unnamed overloads`] 
| 
| link:#nlohmann-operator_rshift-0a[`operator&gt;&gt;`] 
| Right shift operators
| link:#nlohmann-swap-0e[`swap`] 
| exchanges the values
| link:#nlohmann-to_string[`to&lowbar;string`] 
| user&hyphen;defined to&lowbar;string function for JSON values
| link:#nlohmann-operator_lshift-05e[`operator&lt;&lt;`] 
| Left shift operators
|===

== See Also

https&colon;&sol;&sol;github&period;com&sol;nlohmann

default specialization

== Synopsis

Declared in `&lt;nlohmann&sol;json&lowbar;fwd&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using json = link:#nlohmann-basic_json-00[basic&lowbar;json];
----

specialization that maintains the insertion order of object keys

== Synopsis

Declared in `&lt;nlohmann&sol;json&lowbar;fwd&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using ordered&lowbar;json = link:#nlohmann-basic_json-00[basic&lowbar;json&lt;ordered&lowbar;map&gt;];
----

default JSONSerializer template argument

== Synopsis

Declared in `&lt;nlohmann&sol;adl&lowbar;serializer&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename T = void,
    typename SFINAE = void&gt;
struct adl&lowbar;serializer;
----

== Static Member Functions

[cols=2]
|===
| Name
| Description
| link:#nlohmann-adl_serializer-from_json-0a3[`from&lowbar;json`] 
| convert a JSON value to any value type
| link:#nlohmann-adl_serializer-to_json[`to&lowbar;json`] 
| convert any value type to a JSON value
|===

== Description

This serializer ignores the template arguments and uses ADL(https://en.cppreference.com/w/cpp/language/adl[argument&hyphen;dependent lookup])for serialization&period;

convert a JSON value to any value type

== Synopses

Declared in `&lt;nlohmann&sol;adl&lowbar;serializer&period;hpp&gt;`

convert a JSON value to any value type


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename BasicJsonType,
    typename TargetType = ValueType&gt;
static
decltype(&colon;&colon;nlohmann&colon;&colon;from&lowbar;json(std&colon;&colon;forward&lt;BasicJsonType&gt;(j), detail&colon;&colon;identity&lowbar;tag&lt;TargetType&gt; &lcub;&rcub;))
link:#nlohmann-adl_serializer-from_json-0a7[from&lowbar;json](BasicJsonType&& j) noexcept(noexcept(&colon;&colon;nlohmann&colon;&colon;from&lowbar;json(std&colon;&colon;forward&lt;BasicJsonType&gt;(j), detail&colon;&colon;identity&lowbar;tag&lt;TargetType&gt;&lcub;&rcub;)));
----

[.small]#link:#nlohmann-adl_serializer-from_json-0a7[_» more&period;&period;&period;_]#

convert a JSON value to any value type


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename BasicJsonType,
    typename TargetType = ValueType&gt;
static
decltype(&colon;&colon;nlohmann&colon;&colon;from&lowbar;json(std&colon;&colon;forward&lt;BasicJsonType&gt;(j), val), void())
link:#nlohmann-adl_serializer-from_json-07[from&lowbar;json](
    BasicJsonType&& j,
    TargetType& val) noexcept(noexcept(&colon;&colon;nlohmann&colon;&colon;from&lowbar;json(std&colon;&colon;forward&lt;BasicJsonType&gt;(j), val)));
----

[.small]#link:#nlohmann-adl_serializer-from_json-07[_» more&period;&period;&period;_]#

convert a JSON value to any value type

== Synopsis

Declared in `&lt;nlohmann&sol;adl&lowbar;serializer&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename BasicJsonType,
    typename TargetType = ValueType&gt;
static
decltype(&colon;&colon;nlohmann&colon;&colon;from&lowbar;json(std&colon;&colon;forward&lt;BasicJsonType&gt;(j), detail&colon;&colon;identity&lowbar;tag&lt;TargetType&gt; &lcub;&rcub;))
from&lowbar;json(BasicJsonType&& j) noexcept(noexcept(&colon;&colon;nlohmann&colon;&colon;from&lowbar;json(std&colon;&colon;forward&lt;BasicJsonType&gt;(j), detail&colon;&colon;identity&lowbar;tag&lt;TargetType&gt;&lcub;&rcub;)));
----

convert a JSON value to any value type

== Synopsis

Declared in `&lt;nlohmann&sol;adl&lowbar;serializer&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename BasicJsonType,
    typename TargetType = ValueType&gt;
static
decltype(&colon;&colon;nlohmann&colon;&colon;from&lowbar;json(std&colon;&colon;forward&lt;BasicJsonType&gt;(j), val), void())
from&lowbar;json(
    BasicJsonType&& j,
    TargetType& val) noexcept(noexcept(&colon;&colon;nlohmann&colon;&colon;from&lowbar;json(std&colon;&colon;forward&lt;BasicJsonType&gt;(j), val)));
----

convert any value type to a JSON value

== Synopsis

Declared in `&lt;nlohmann&sol;adl&lowbar;serializer&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename BasicJsonType,
    typename TargetType = ValueType&gt;
static
decltype(&colon;&colon;nlohmann&colon;&colon;to&lowbar;json(j, std&colon;&colon;forward&lt;TargetType&gt;(val)), void())
to&lowbar;json(
    BasicJsonType& j,
    TargetType&& val) noexcept(noexcept(&colon;&colon;nlohmann&colon;&colon;to&lowbar;json(j, std&colon;&colon;forward&lt;TargetType&gt;(val))));
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;&gt;
class link:#nlohmann-basic_json-00[basic&lowbar;json]&lt;&gt;
    : public nlohmann::detail::json&lowbar;base&lowbar;class&lt;void&gt;
----

== Base Classes

[cols=2]
|===
| Name
| Description
| `nlohmann::detail::json&lowbar;base&lowbar;class&lt;void&gt;`
| 
|===

== Types

[cols=2]
|===
| Name
| Description
| link:#nlohmann-basic_json-0e-allocator_type[`allocator&lowbar;type`] 
| the allocator type
| link:#nlohmann-basic_json-0e-array_t[`array&lowbar;t`] 
| a type for an array
| link:#nlohmann-basic_json-0e-binary_t[`binary&lowbar;t`] 
| a type for a packed binary type
| link:#nlohmann-basic_json-0e-bjdata_version_t[`bjdata&lowbar;version&lowbar;t`] 
| how to encode BJData
| link:#nlohmann-basic_json-0e-boolean_t[`boolean&lowbar;t`] 
| a type for a boolean
| link:#nlohmann-basic_json-0e-cbor_tag_handler_t[`cbor&lowbar;tag&lowbar;handler&lowbar;t`] 
| how to treat CBOR tags
| link:#nlohmann-basic_json-0e-const_iterator[`const&lowbar;iterator`] 
| a const iterator for a basic&lowbar;json container
| link:#nlohmann-basic_json-0e-const_pointer[`const&lowbar;pointer`] 
| the type of an element const pointer
| link:#nlohmann-basic_json-0e-const_reference[`const&lowbar;reference`] 
| the type of an element const reference
| link:#nlohmann-basic_json-0e-const_reverse_iterator[`const&lowbar;reverse&lowbar;iterator`] 
| a const reverse iterator for a basic&lowbar;json container
| link:#nlohmann-basic_json-0e-default_object_comparator_t[`default&lowbar;object&lowbar;comparator&lowbar;t`] 
| 
| link:#nlohmann-basic_json-0e-difference_type[`difference&lowbar;type`] 
| a type to represent differences between iterators
| link:#nlohmann-basic_json-0e-error_handler_t[`error&lowbar;handler&lowbar;t`] 
| how to treat decoding errors
| link:#nlohmann-basic_json-0e-exception[`exception`] 
| Classes to implement user&hyphen;defined exceptions&period; @&lcub;
| link:#nlohmann-basic_json-0e-initializer_list_t[`initializer&lowbar;list&lowbar;t`] 
| helper type for initializer lists of basic&lowbar;json values
| link:#nlohmann-basic_json-0e-input_format_t[`input&lowbar;format&lowbar;t`] 
| 
| link:#nlohmann-basic_json-0e-invalid_iterator[`invalid&lowbar;iterator`] 
| 
| link:#nlohmann-basic_json-0e-iterator[`iterator`] 
| an iterator for a basic&lowbar;json container
| link:#nlohmann-basic_json-0e-json_pointer[`json&lowbar;pointer`] 
| JSON Pointer, see link:#nlohmann-json_pointer-0b[`nlohmann&colon;&colon;json&lowbar;pointer`]
| link:#nlohmann-basic_json-0e-json_sax_t[`json&lowbar;sax&lowbar;t`] 
| SAX interface type, see `nlohmann&colon;&colon;json&lowbar;sax`
| link:#nlohmann-basic_json-0e-json_serializer[`json&lowbar;serializer`] 
| 
| link:#nlohmann-basic_json-0e-number_float_t[`number&lowbar;float&lowbar;t`] 
| a type for a number (floating&hyphen;point)
| link:#nlohmann-basic_json-0e-number_integer_t[`number&lowbar;integer&lowbar;t`] 
| a type for a number (integer)
| link:#nlohmann-basic_json-0e-number_unsigned_t[`number&lowbar;unsigned&lowbar;t`] 
| a type for a number (unsigned)
| link:#nlohmann-basic_json-0e-object_comparator_t[`object&lowbar;comparator&lowbar;t`] 
| object key comparator type
| link:#nlohmann-basic_json-0e-object_t[`object&lowbar;t`] 
| a type for an object
| link:#nlohmann-basic_json-0e-other_error[`other&lowbar;error`] 
| 
| link:#nlohmann-basic_json-0e-out_of_range[`out&lowbar;of&lowbar;range`] 
| 
| link:#nlohmann-basic_json-0e-parse_error[`parse&lowbar;error`] 
| 
| link:#nlohmann-basic_json-0e-parse_event_t[`parse&lowbar;event&lowbar;t`] 
| parser event types
| link:#nlohmann-basic_json-0e-parser_callback_t[`parser&lowbar;callback&lowbar;t`] 
| per&hyphen;element parser callback type
| link:#nlohmann-basic_json-0e-pointer[`pointer`] 
| the type of an element pointer
| link:#nlohmann-basic_json-0e-reference[`reference`] 
| the type of an element reference
| link:#nlohmann-basic_json-0e-reverse_iterator[`reverse&lowbar;iterator`] 
| a reverse iterator for a basic&lowbar;json container
| link:#nlohmann-basic_json-0e-size_type[`size&lowbar;type`] 
| a type to represent container sizes
| link:#nlohmann-basic_json-0e-string_t[`string&lowbar;t`] 
| a type for a string
| link:#nlohmann-basic_json-0e-type_error[`type&lowbar;error`] 
| 
| link:#nlohmann-basic_json-0e-value_t[`value&lowbar;t`] 
| 
| link:#nlohmann-basic_json-0e-value_type[`value&lowbar;type`] 
| the type of elements in a basic&lowbar;json container
|===

== Member Functions

[cols=2]
|===
| Name
| Description
| link:#nlohmann-basic_json-0e-2constructor-0ab[`basic&lowbar;json`]         [.small]#[constructor]#
| Construct from `nullptr&lowbar;t`
| link:#nlohmann-basic_json-0e-2constructor-05b[`basic&lowbar;json`]         [.small]#[constructor]#
| Construct from `value&lowbar;t`
| link:#nlohmann-basic_json-0e-2constructor-01[`basic&lowbar;json`]         [.small]#[constructor]#
| Construct from `basic&lowbar;json`
| link:#nlohmann-basic_json-0e-2constructor-0c91[`basic&lowbar;json`]         [.small]#[constructor]#
| Construct from `basic&lowbar;json`
| link:#nlohmann-basic_json-0e-2constructor-03[`basic&lowbar;json`]         [.small]#[constructor]#
| create a JSON value from an existing one
| link:#nlohmann-basic_json-0e-2constructor-06[`basic&lowbar;json`]         [.small]#[constructor]#
| &sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;
| link:#nlohmann-basic_json-0e-2constructor-0ca[`basic&lowbar;json`]         [.small]#[constructor]#
| create a JSON value from compatible types
| link:#nlohmann-basic_json-0e-2constructor-0a8[`basic&lowbar;json`]         [.small]#[constructor]#
| Constructor
| link:#nlohmann-basic_json-0e-2constructor-05d[`basic&lowbar;json`]         [.small]#[constructor]#
| construct a JSON container given an iterator range
| link:#nlohmann-basic_json-0e-2constructor-0c93[`basic&lowbar;json`]         [.small]#[constructor]#
| 
| link:#nlohmann-basic_json-0e-2destructor[`&#126;basic&lowbar;json`] [.small]#[destructor]#
| Destructor
| link:#nlohmann-basic_json-0e-operator_assign[`operator&equals;`] 
| Assignment operator
| link:#nlohmann-basic_json-0e-at-05d[`at`] 
| 
| link:#nlohmann-basic_json-0e-at-03e[`at`] 
| 
| link:#nlohmann-basic_json-0e-at-0e[`at`] 
| 
| link:#nlohmann-basic_json-0e-at-07[`at`] 
| 
| link:#nlohmann-basic_json-0e-at-08[`at`] 
| 
| link:#nlohmann-basic_json-0e-at-035[`at`] 
| 
| link:#nlohmann-basic_json-0e-at-058[`at`] 
| 
| link:#nlohmann-basic_json-0e-at-025[`at`] 
| 
| link:#nlohmann-basic_json-0e-at-050[`at`] 
| access specified object element with bounds checking
| link:#nlohmann-basic_json-0e-at-02e[`at`] 
| access specified object element with bounds checking
| link:#nlohmann-basic_json-0e-back-0f[`back`] 
| 
| link:#nlohmann-basic_json-0e-back-09[`back`] 
| 
| link:#nlohmann-basic_json-0e-begin-0a[`begin`] 
| 
| link:#nlohmann-basic_json-0e-begin-0e[`begin`] 
| 
| link:#nlohmann-basic_json-0e-cbegin[`cbegin`] 
| 
| link:#nlohmann-basic_json-0e-cend[`cend`] 
| 
| link:#nlohmann-basic_json-0e-clear[`clear`] 
| 
| link:#nlohmann-basic_json-0e-contains-03[`contains`] 
| 
| link:#nlohmann-basic_json-0e-contains-05[`contains`] 
| 
| link:#nlohmann-basic_json-0e-contains-00[`contains`] 
| 
| link:#nlohmann-basic_json-0e-contains-01[`contains`] 
| check the existence of an element in a JSON object
| link:#nlohmann-basic_json-0e-count-0e[`count`] 
| 
| link:#nlohmann-basic_json-0e-count-06[`count`] 
| returns the number of occurrences of a key in a JSON object
| link:#nlohmann-basic_json-0e-crbegin[`crbegin`] 
| 
| link:#nlohmann-basic_json-0e-crend[`crend`] 
| 
| link:#nlohmann-basic_json-0e-dump[`dump`] 
| 
| link:#nlohmann-basic_json-0e-emplace[`emplace`] 
| add an object to an object if key does not exist
| link:#nlohmann-basic_json-0e-emplace_back[`emplace&lowbar;back`] 
| add an object to an array
| link:#nlohmann-basic_json-0e-empty[`empty`] 
| 
| link:#nlohmann-basic_json-0e-end-06[`end`] 
| 
| link:#nlohmann-basic_json-0e-end-0d[`end`] 
| 
| link:#nlohmann-basic_json-0e-erase-09[`erase`] 
| 
| link:#nlohmann-basic_json-0e-erase-01[`erase`] 
| 
| link:#nlohmann-basic_json-0e-erase-00[`erase`] 
| remove element given an iterator
| link:#nlohmann-basic_json-0e-erase-0f[`erase`] 
| remove element from a JSON object given a key
| link:#nlohmann-basic_json-0e-erase-08[`erase`] 
| remove elements given an iterator range
| link:#nlohmann-basic_json-0e-find-0cc[`find`] 
| 
| link:#nlohmann-basic_json-0e-find-0e[`find`] 
| 
| link:#nlohmann-basic_json-0e-find-05[`find`] 
| find an element in a JSON object
| link:#nlohmann-basic_json-0e-find-0c0[`find`] 
| find an element in a JSON object
| link:#nlohmann-basic_json-0e-flatten[`flatten`] 
| 
| link:#nlohmann-basic_json-0e-front-00[`front`] 
| 
| link:#nlohmann-basic_json-0e-front-05[`front`] 
| 
| link:#nlohmann-basic_json-0e-get-0e[`get`] 
| get a pointer value (explicit)
| link:#nlohmann-basic_json-0e-get-01[`get`] 
| get a (pointer) value (explicit)
| link:#nlohmann-basic_json-0e-get_binary-0f[`get&lowbar;binary`] 
| 
| link:#nlohmann-basic_json-0e-get_binary-02[`get&lowbar;binary`] 
| 
| link:#nlohmann-basic_json-0e-get_ptr-09[`get&lowbar;ptr`] 
| get a pointer value (implicit)
| link:#nlohmann-basic_json-0e-get_ptr-08[`get&lowbar;ptr`] 
| get a pointer value (implicit)
| link:#nlohmann-basic_json-0e-get_ref-0c[`get&lowbar;ref`] 
| get a reference value (implicit)
| link:#nlohmann-basic_json-0e-get_ref-06[`get&lowbar;ref`] 
| get a reference value (implicit)
| link:#nlohmann-basic_json-0e-get_to-07[`get&lowbar;to`] 
| get a value (explicit)
| link:#nlohmann-basic_json-0e-get_to-09[`get&lowbar;to`] 
| 
| link:#nlohmann-basic_json-0e-get_to-00[`get&lowbar;to`] 
| 
| link:#nlohmann-basic_json-0e-insert-0d2[`insert`] 
| 
| link:#nlohmann-basic_json-0e-insert-0d9[`insert`] 
| 
| link:#nlohmann-basic_json-0e-insert-06[`insert`] 
| 
| link:#nlohmann-basic_json-0e-insert-01[`insert`] 
| 
| link:#nlohmann-basic_json-0e-insert-0c[`insert`] 
| 
| link:#nlohmann-basic_json-0e-insert-05[`insert`] 
| 
| link:#nlohmann-basic_json-0e-insert_iterator[`insert&lowbar;iterator`] 
| Helper for insertion of an iterator
| link:#nlohmann-basic_json-0e-is_array[`is&lowbar;array`] 
| 
| link:#nlohmann-basic_json-0e-is_binary[`is&lowbar;binary`] 
| 
| link:#nlohmann-basic_json-0e-is_boolean[`is&lowbar;boolean`] 
| 
| link:#nlohmann-basic_json-0e-is_discarded[`is&lowbar;discarded`] 
| 
| link:#nlohmann-basic_json-0e-is_null[`is&lowbar;null`] 
| 
| link:#nlohmann-basic_json-0e-is_number[`is&lowbar;number`] 
| 
| link:#nlohmann-basic_json-0e-is_number_float[`is&lowbar;number&lowbar;float`] 
| 
| link:#nlohmann-basic_json-0e-is_number_integer[`is&lowbar;number&lowbar;integer`] 
| 
| link:#nlohmann-basic_json-0e-is_number_unsigned[`is&lowbar;number&lowbar;unsigned`] 
| 
| link:#nlohmann-basic_json-0e-is_object[`is&lowbar;object`] 
| 
| link:#nlohmann-basic_json-0e-is_primitive[`is&lowbar;primitive`] 
| 
| link:#nlohmann-basic_json-0e-is_string[`is&lowbar;string`] 
| 
| link:#nlohmann-basic_json-0e-is_structured[`is&lowbar;structured`] 
| 
| link:#nlohmann-basic_json-0e-items-0a[`items`] 
| 
| link:#nlohmann-basic_json-0e-items-0d[`items`] 
| 
| link:#nlohmann-basic_json-0e-max_size[`max&lowbar;size`] 
| 
| link:#nlohmann-basic_json-0e-merge_patch[`merge&lowbar;patch`] 
| 
| link:#nlohmann-basic_json-0e-operator_plus_eq-0fb[`operator&plus;&equals;`] 
| Addition assignment operator
| link:#nlohmann-basic_json-0e-operator_plus_eq-0f8b[`operator&plus;&equals;`] 
| Addition assignment operator
| link:#nlohmann-basic_json-0e-operator_plus_eq-0f87[`operator&plus;&equals;`] 
| Addition assignment operator
| link:#nlohmann-basic_json-0e-operator_plus_eq-05[`operator&plus;&equals;`] 
| Addition assignment operator
| link:#nlohmann-basic_json-0e-operator_subs-010[`operator&lsqb;&rsqb;`] 
| Subscript operator
| link:#nlohmann-basic_json-0e-operator_subs-02[`operator&lsqb;&rsqb;`] 
| Subscript operator
| link:#nlohmann-basic_json-0e-operator_subs-0f[`operator&lsqb;&rsqb;`] 
| Subscript operator
| link:#nlohmann-basic_json-0e-operator_subs-04d[`operator&lsqb;&rsqb;`] 
| Subscript operator
| link:#nlohmann-basic_json-0e-operator_subs-0b[`operator&lsqb;&rsqb;`] 
| Subscript operator
| link:#nlohmann-basic_json-0e-operator_subs-03[`operator&lsqb;&rsqb;`] 
| Subscript operator
| link:#nlohmann-basic_json-0e-operator_subs-07[`operator&lsqb;&rsqb;`] 
| Subscript operator
| link:#nlohmann-basic_json-0e-operator_subs-053[`operator&lsqb;&rsqb;`] 
| Subscript operator
| link:#nlohmann-basic_json-0e-operator_subs-042[`operator&lsqb;&rsqb;`] 
| access specified object element
| link:#nlohmann-basic_json-0e-operator_subs-014[`operator&lsqb;&rsqb;`] 
| access specified object element
| link:#nlohmann-basic_json-0e-operator_subs-05c[`operator&lsqb;&rsqb;`] 
| Subscript operator
| link:#nlohmann-basic_json-0e-operator_subs-08[`operator&lsqb;&rsqb;`] 
| Subscript operator
| link:#nlohmann-basic_json-0e-patch[`patch`] 
| 
| link:#nlohmann-basic_json-0e-patch_inplace[`patch&lowbar;inplace`] 
| 
| link:#nlohmann-basic_json-0e-push_back-0e[`push&lowbar;back`] 
| 
| link:#nlohmann-basic_json-0e-push_back-09[`push&lowbar;back`] 
| 
| link:#nlohmann-basic_json-0e-push_back-0c[`push&lowbar;back`] 
| 
| link:#nlohmann-basic_json-0e-push_back-0a[`push&lowbar;back`] 
| 
| link:#nlohmann-basic_json-0e-rbegin-03[`rbegin`] 
| 
| link:#nlohmann-basic_json-0e-rbegin-0a[`rbegin`] 
| 
| link:#nlohmann-basic_json-0e-rend-04[`rend`] 
| 
| link:#nlohmann-basic_json-0e-rend-05[`rend`] 
| 
| link:#nlohmann-basic_json-0e-size[`size`] 
| 
| link:#nlohmann-basic_json-0e-swap-0c[`swap`] 
| 
| link:#nlohmann-basic_json-0e-swap-010[`swap`] 
| 
| link:#nlohmann-basic_json-0e-swap-011[`swap`] 
| 
| link:#nlohmann-basic_json-0e-swap-06[`swap`] 
| 
| link:#nlohmann-basic_json-0e-swap-07[`swap`] 
| 
| link:#nlohmann-basic_json-0e-swap-09[`swap`] 
| 
| link:#nlohmann-basic_json-0e-type[`type`] 
| 
| link:#nlohmann-basic_json-0e-type_name[`type&lowbar;name`] 
| 
| link:#nlohmann-basic_json-0e-unflatten[`unflatten`] 
| 
| link:#nlohmann-basic_json-0e-update-07[`update`] 
| 
| link:#nlohmann-basic_json-0e-update-0e[`update`] 
| 
| link:#nlohmann-basic_json-0e-value-0f[`value`] 
| access specified object element via JSON Pointer with default value
| link:#nlohmann-basic_json-0e-value-019[`value`] 
| access specified object element with default value
| link:#nlohmann-basic_json-0e-value-0a[`value`] 
| access specified object element via JSON Pointer with default value
| link:#nlohmann-basic_json-0e-value-08[`value`] 
| access specified object element with default value
| link:#nlohmann-basic_json-0e-value-04[`value`] 
| 
| link:#nlohmann-basic_json-0e-value-06[`value`] 
| access specified object element with default value
| link:#nlohmann-basic_json-0e-value-012[`value`] 
| 
| link:#nlohmann-basic_json-0e-value-02[`value`] 
| access specified object element via JSON Pointer with default value
| link:#nlohmann-basic_json-0e-2conversion-03[`operator ValueType`] 
| get a value (implicit)
| link:#nlohmann-basic_json-0e-2conversion-0f[`operator value&lowbar;t`] 
| Conversion to `value&lowbar;t`
| link:#nlohmann-basic_json-0e-operator_eq-0a[`operator&equals;&equals;`] 
| comparison&colon; equal
| link:#nlohmann-basic_json-0e-operator_eq-0b[`operator&equals;&equals;`] 
| Equality operator
| link:#nlohmann-basic_json-0e-operator_not_eq[`operator!&equals;`] 
| Inequality operator
| link:#nlohmann-basic_json-0e-operator_3way-06[`operator&lt;&equals;&gt;`] 
| comparison&colon; 3&hyphen;way
| link:#nlohmann-basic_json-0e-operator_3way-0b[`operator&lt;&equals;&gt;`] 
| Three&hyphen;way comparison operator
|===

== Static Member Functions

[cols=2]
|===
| Name
| Description
| link:#nlohmann-basic_json-0e-accept-0b[`accept`] 
| 
| link:#nlohmann-basic_json-0e-accept-09[`accept`] 
| check if the input is valid JSON
| link:#nlohmann-basic_json-0e-accept-02[`accept`] 
| check if the input is valid JSON
| link:#nlohmann-basic_json-0e-array[`array`] 
| 
| link:#nlohmann-basic_json-0e-binary-09[`binary`] 
| 
| link:#nlohmann-basic_json-0e-binary-08[`binary`] 
| 
| link:#nlohmann-basic_json-0e-binary-07[`binary`] 
| 
| link:#nlohmann-basic_json-0e-binary-05[`binary`] 
| 
| link:#nlohmann-basic_json-0e-diff[`diff`] 
| 
| link:#nlohmann-basic_json-0e-from_bjdata-0c[`from&lowbar;bjdata`] 
| create a JSON value from an input in BJData format
| link:#nlohmann-basic_json-0e-from_bjdata-0f[`from&lowbar;bjdata`] 
| create a JSON value from an input in BJData format
| link:#nlohmann-basic_json-0e-from_bson-01[`from&lowbar;bson`] 
| 
| link:#nlohmann-basic_json-0e-from_bson-06[`from&lowbar;bson`] 
| create a JSON value from an input in BSON format
| link:#nlohmann-basic_json-0e-from_bson-08[`from&lowbar;bson`] 
| create a JSON value from an input in BSON format
| link:#nlohmann-basic_json-0e-from_bson-0d[`from&lowbar;bson`] 
| 
| link:#nlohmann-basic_json-0e-from_cbor-0c[`from&lowbar;cbor`] 
| 
| link:#nlohmann-basic_json-0e-from_cbor-05[`from&lowbar;cbor`] 
| create a JSON value from an input in CBOR format
| link:#nlohmann-basic_json-0e-from_cbor-0f[`from&lowbar;cbor`] 
| create a JSON value from an input in CBOR format
| link:#nlohmann-basic_json-0e-from_cbor-0d[`from&lowbar;cbor`] 
| 
| link:#nlohmann-basic_json-0e-from_msgpack-08[`from&lowbar;msgpack`] 
| 
| link:#nlohmann-basic_json-0e-from_msgpack-0c[`from&lowbar;msgpack`] 
| create a JSON value from an input in MessagePack format
| link:#nlohmann-basic_json-0e-from_msgpack-05[`from&lowbar;msgpack`] 
| create a JSON value from an input in MessagePack format
| link:#nlohmann-basic_json-0e-from_msgpack-04[`from&lowbar;msgpack`] 
| 
| link:#nlohmann-basic_json-0e-from_ubjson-0b[`from&lowbar;ubjson`] 
| 
| link:#nlohmann-basic_json-0e-from_ubjson-09[`from&lowbar;ubjson`] 
| create a JSON value from an input in UBJSON format
| link:#nlohmann-basic_json-0e-from_ubjson-0c[`from&lowbar;ubjson`] 
| create a JSON value from an input in UBJSON format
| link:#nlohmann-basic_json-0e-from_ubjson-0d[`from&lowbar;ubjson`] 
| 
| link:#nlohmann-basic_json-0e-get_allocator[`get&lowbar;allocator`] 
| 
| link:#nlohmann-basic_json-0e-iterator_wrapper-06[`iterator&lowbar;wrapper`] 
| 
| link:#nlohmann-basic_json-0e-iterator_wrapper-0f[`iterator&lowbar;wrapper`] 
| 
| link:#nlohmann-basic_json-0e-meta[`meta`] 
| 
| link:#nlohmann-basic_json-0e-object[`object`] 
| 
| link:#nlohmann-basic_json-0e-parse-08[`parse`] 
| 
| link:#nlohmann-basic_json-0e-parse-09[`parse`] 
| deserialize from a compatible input
| link:#nlohmann-basic_json-0e-parse-01[`parse`] 
| deserialize from a pair of character iterators
| link:#nlohmann-basic_json-0e-sax_parse-00[`sax&lowbar;parse`] 
| generate SAX events
| link:#nlohmann-basic_json-0e-sax_parse-08[`sax&lowbar;parse`] 
| generate SAX events
| link:#nlohmann-basic_json-0e-sax_parse-0b[`sax&lowbar;parse`] 
| generate SAX events
| link:#nlohmann-basic_json-0e-to_bjdata-0d[`to&lowbar;bjdata`] 
| 
| link:#nlohmann-basic_json-0e-to_bjdata-02[`to&lowbar;bjdata`] 
| 
| link:#nlohmann-basic_json-0e-to_bjdata-04[`to&lowbar;bjdata`] 
| 
| link:#nlohmann-basic_json-0e-to_bson-07[`to&lowbar;bson`] 
| 
| link:#nlohmann-basic_json-0e-to_bson-00[`to&lowbar;bson`] 
| 
| link:#nlohmann-basic_json-0e-to_bson-0b[`to&lowbar;bson`] 
| 
| link:#nlohmann-basic_json-0e-to_cbor-0b[`to&lowbar;cbor`] 
| 
| link:#nlohmann-basic_json-0e-to_cbor-020b[`to&lowbar;cbor`] 
| 
| link:#nlohmann-basic_json-0e-to_cbor-0204[`to&lowbar;cbor`] 
| 
| link:#nlohmann-basic_json-0e-to_msgpack-0d[`to&lowbar;msgpack`] 
| 
| link:#nlohmann-basic_json-0e-to_msgpack-00[`to&lowbar;msgpack`] 
| 
| link:#nlohmann-basic_json-0e-to_msgpack-05[`to&lowbar;msgpack`] 
| 
| link:#nlohmann-basic_json-0e-to_ubjson-0a[`to&lowbar;ubjson`] 
| 
| link:#nlohmann-basic_json-0e-to_ubjson-0f[`to&lowbar;ubjson`] 
| 
| link:#nlohmann-basic_json-0e-to_ubjson-0b[`to&lowbar;ubjson`] 
| 
|===

== Friends

[cols=2]
|===
| Name
| Description
| `link:#nlohmann-operator_rshift-02[nlohmann::operator&gt;&gt;]`
| deserialize from stream
| `link:#nlohmann-operator_lshift-053[nlohmann::operator&lt;&lt;]`
| deserialize from stream
| `link:#nlohmann-operator_rshift-08[nlohmann::operator&gt;&gt;]`
| serialize to stream
| `link:#nlohmann-operator_lshift-01[nlohmann::operator&lt;&lt;]`
| serialize to stream
| `link:#nlohmann-swap-05[nlohmann::swap]`
| exchanges the values
| `nlohmann::detail::exception`
| general exception of the `basic&lowbar;json` class
| `nlohmann::detail::serializer`
| 
| `link:#nlohmann-json_pointer-0a[nlohmann::json&lowbar;pointer]`
| JSON Pointer defines a string syntax for identifying a specific value within a JSON document
|===

the allocator type

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using allocator&lowbar;type = allocator&lt;basic&lowbar;json&gt;;
----

a type for an array

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using array&lowbar;t = vector&lt;basic&lowbar;json, allocator&lt;basic&lowbar;json&gt;&gt;;
----

a type for a packed binary type

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using binary&lowbar;t = link:#nlohmann-byte_container_with_subtype-04[nlohmann::byte&lowbar;container&lowbar;with&lowbar;subtype&lt;vector&lt;unsigned char&gt;&gt;];
----

how to encode BJData

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using bjdata&lowbar;version&lowbar;t = detail::bjdata&lowbar;version&lowbar;t;
----

a type for a boolean

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using boolean&lowbar;t = bool;
----

how to treat CBOR tags

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using cbor&lowbar;tag&lowbar;handler&lowbar;t = detail::cbor&lowbar;tag&lowbar;handler&lowbar;t;
----

a const iterator for a basic&lowbar;json container

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using const&lowbar;iterator = link:#nlohmann-basic_json-0e[iter&lowbar;impl&lt;basic&lowbar;json const&gt;];
----

the type of an element const pointer

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using const&lowbar;pointer = std::allocator&lowbar;traits&lt;allocator&lowbar;type&gt;::const&lowbar;pointer;
----

the type of an element const reference

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using const&lowbar;reference = link:#nlohmann-basic_json-0e-value_type[value&lowbar;type] const&;
----

a const reverse iterator for a basic&lowbar;json container

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using const&lowbar;reverse&lowbar;iterator = link:#nlohmann-basic_json-0e[json&lowbar;reverse&lowbar;iterator&lt;basic&lowbar;json::const&lowbar;iterator&gt;];
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using default&lowbar;object&lowbar;comparator&lowbar;t = std::less;
----

a type to represent differences between iterators

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using difference&lowbar;type = std::ptrdiff&lowbar;t;
----

how to treat decoding errors

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using error&lowbar;handler&lowbar;t = detail::error&lowbar;handler&lowbar;t;
----

Classes to implement user&hyphen;defined exceptions&period; @&lcub;

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using exception = detail::exception;
----

helper type for initializer lists of basic&lowbar;json values

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using initializer&lowbar;list&lowbar;t = std::initializer&lowbar;list&lt;detail::json&lowbar;ref&lt;basic&lowbar;json&gt;&gt;;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using input&lowbar;format&lowbar;t = detail::input&lowbar;format&lowbar;t;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using invalid&lowbar;iterator = detail::invalid&lowbar;iterator;
----

an iterator for a basic&lowbar;json container

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using iterator = link:#nlohmann-basic_json-0e[iter&lowbar;impl&lt;basic&lowbar;json&gt;];
----

JSON Pointer, see link:#nlohmann-json_pointer-0b[`nlohmann&colon;&colon;json&lowbar;pointer`]

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using json&lowbar;pointer = link:#nlohmann-json_pointer-0a[nlohmann::json&lowbar;pointer&lt;basic&lowbar;string&lt;char&gt;&gt;];
----

SAX interface type, see `nlohmann&colon;&colon;json&lowbar;sax`

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using json&lowbar;sax&lowbar;t = json&lowbar;sax&lt;basic&lowbar;json&gt;;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename T,
    typename SFINAE&gt;
using json&lowbar;serializer = link:#nlohmann-adl_serializer[adl&lowbar;serializer&lt;T, SFINAE&gt;];
----

a type for a number (floating&hyphen;point)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using number&lowbar;float&lowbar;t = double;
----

a type for a number (integer)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using number&lowbar;integer&lowbar;t = long long;
----

a type for a number (unsigned)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using number&lowbar;unsigned&lowbar;t = unsigned long long;
----

object key comparator type

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using object&lowbar;comparator&lowbar;t = detail::actual&lowbar;object&lowbar;comparator&lowbar;t&lt;basic&lowbar;json&gt;;
----

a type for an object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using object&lowbar;t = map&lt;basic&lowbar;string&lt;char&gt;, basic&lowbar;json, default&lowbar;object&lowbar;comparator&lowbar;t, allocator&lt;std::pair&lt;basic&lowbar;string&lt;char&gt; const, basic&lowbar;json&gt;&gt;&gt;;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using other&lowbar;error = detail::other&lowbar;error;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using out&lowbar;of&lowbar;range = detail::out&lowbar;of&lowbar;range;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using parse&lowbar;error = detail::parse&lowbar;error;
----

parser event types

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using parse&lowbar;event&lowbar;t = detail::parse&lowbar;event&lowbar;t;
----

per&hyphen;element parser callback type

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using parser&lowbar;callback&lowbar;t = detail::parser&lowbar;callback&lowbar;t&lt;basic&lowbar;json&gt;;
----

the type of an element pointer

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using pointer = std::allocator&lowbar;traits&lt;allocator&lowbar;type&gt;::pointer;
----

the type of an element reference

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using reference = link:#nlohmann-basic_json-0e-value_type[value&lowbar;type]&;
----

a reverse iterator for a basic&lowbar;json container

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using reverse&lowbar;iterator = link:#nlohmann-basic_json-0e[json&lowbar;reverse&lowbar;iterator&lt;basic&lowbar;json::iterator&gt;];
----

a type to represent container sizes

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using size&lowbar;type = std::size&lowbar;t;
----

a type for a string

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using string&lowbar;t = basic&lowbar;string&lt;char&gt;;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using type&lowbar;error = detail::type&lowbar;error;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using value&lowbar;t = detail::value&lowbar;t;
----

the type of elements in a basic&lowbar;json container

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using value&lowbar;type = link:#nlohmann-basic_json-00[basic&lowbar;json];
----

Construct from `nullptr&lowbar;t`

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
basic&lowbar;json(std::nullptr&lowbar;t value = nullptr) noexcept;
----

== Parameters

[cols=2]
|===
| Name
| Description
| *value*
| The object to construct from
|===

Construct from `value&lowbar;t`

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
basic&lowbar;json(link:#nlohmann-basic_json-00-value_t[value&lowbar;t] const v);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *v*
| The object to construct from
|===

Construct from `basic&lowbar;json`

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
basic&lowbar;json(link:#nlohmann-basic_json-00[basic&lowbar;json] const& other);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *other*
| The object to copy construct from
|===

Construct from `basic&lowbar;json`

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
basic&lowbar;json(link:#nlohmann-basic_json-00[basic&lowbar;json]&& other) noexcept;
----

== Parameters

[cols=2]
|===
| Name
| Description
| *other*
| The object to move construct from
|===

create a JSON value from an existing one

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename BasicJsonType&gt;
requires detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;BasicJsonType&gt;&colon;&colon;value&amp;&amp; !std&colon;&colon;is&lowbar;same&lt;basic&lowbar;json, BasicJsonType&gt;&colon;&colon;value
basic&lowbar;json(BasicJsonType const& val);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *val*
| The object to copy construct from
|===

&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename JsonRef&gt;
requires detail&colon;&colon;conjunction&lt;detail&colon;&colon;is&lowbar;json&lowbar;ref&lt;JsonRef&gt;,
                                 std&colon;&colon;is&lowbar;same&lt;typename JsonRef&colon;&colon;value&lowbar;type, basic&lowbar;json&gt;&gt;&colon;&colon;value
basic&lowbar;json(JsonRef const& ref);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *ref*
| The object to copy construct from
|===

create a JSON value from compatible types

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename CompatibleType,
    typename U = detail::uncvref&lowbar;t&lt;CompatibleType&gt;&gt;
requires !detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;U&gt;&colon;&colon;value &amp;&amp; detail&colon;&colon;is&lowbar;compatible&lowbar;type&lt;basic&lowbar;json&lowbar;t, U&gt;&colon;&colon;value
basic&lowbar;json(CompatibleType&& val) noexcept(noexcept(JSONSerializer&lt;U, void&gt;&colon;&colon;to&lowbar;json(std&colon;&colon;declval&lt;basic&lowbar;json&lowbar;t &amp;&gt;(), std&colon;&colon;forward&lt;CompatibleType&gt;(val))));
----

== Parameters

[cols=2]
|===
| Name
| Description
| *val*
| The object to move construct from
|===

Constructor

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
basic&lowbar;json(
    link:#nlohmann-basic_json-00-size_type[size&lowbar;type] cnt,
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& val);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *cnt*
| The object to construct from
| *val*
| a class to store JSON values
|===

construct a JSON container given an iterator range

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class InputIT&gt;
requires std&colon;&colon;is&lowbar;same&lt;InputIT, typename basic&lowbar;json&lowbar;t&colon;&colon;iterator&gt;&colon;&colon;value &verbar;&verbar;
                   std&colon;&colon;is&lowbar;same&lt;InputIT, typename basic&lowbar;json&lowbar;t&colon;&colon;const&lowbar;iterator&gt;&colon;&colon;value
basic&lowbar;json(
    InputIT first,
    InputIT last);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *first*
| The object to construct from
|===

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
basic&lowbar;json(
    link:#nlohmann-basic_json-0e-initializer_list_t[initializer&lowbar;list&lowbar;t] init,
    bool type&lowbar;deduction = true,
    link:#nlohmann-basic_json-00-value_t[value&lowbar;t] manual&lowbar;type = value&lowbar;t&colon;&colon;array);
----

Destructor

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&#126;basic&lowbar;json() noexcept;
----

Assignment operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00[basic&lowbar;json]&
operator&equals;(link:#nlohmann-basic_json-00[basic&lowbar;json] other) noexcept(std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;constructible&lt;value&lowbar;t&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;assignable&lt;value&lowbar;t&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;constructible&lt;json&lowbar;value&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;assignable&lt;json&lowbar;value&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;assignable&lt;json&lowbar;base&lowbar;class&lowbar;t&gt;&colon;&colon;value);
----

== Return Value

a class to store JSON values

== Parameters

[cols=2]
|===
| Name
| Description
| *other*
| The object to assign from
|===

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-reference[reference]
at(link:#nlohmann-basic_json-00-size_type[size&lowbar;type] idx);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-const_reference[const&lowbar;reference]
at(link:#nlohmann-basic_json-00-size_type[size&lowbar;type] idx) const;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-reference[reference]
at(link:#nlohmann-basic_json-0e-json_pointer[json&lowbar;pointer] const& ptr);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-const_reference[const&lowbar;reference]
at(link:#nlohmann-basic_json-0e-json_pointer[json&lowbar;pointer] const& ptr) const;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-reference[reference]
at(object&lowbar;t::key&lowbar;type const& key);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-const_reference[const&lowbar;reference]
at(object&lowbar;t::key&lowbar;type const& key) const;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename BasicJsonType&gt;
requires detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;BasicJsonType&gt;&colon;&colon;value
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
link:#nlohmann-basic_json-0e-reference[reference]
at(link:#nlohmann-json_pointer-0a[nlohmann::json&lowbar;pointer&lt;BasicJsonType&gt;] const& ptr);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename BasicJsonType&gt;
requires detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;BasicJsonType&gt;&colon;&colon;value
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
link:#nlohmann-basic_json-0e-const_reference[const&lowbar;reference]
at(link:#nlohmann-json_pointer-0a[nlohmann::json&lowbar;pointer&lt;BasicJsonType&gt;] const& ptr) const;
----

access specified object element with bounds checking

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;basic&lowbar;json&lowbar;key&lowbar;type&lt;basic&lowbar;json&lowbar;t, KeyType&gt;&colon;&colon;value
link:#nlohmann-basic_json-0e-reference[reference]
at(KeyType&& key);
----

== Return Value

the type of an element reference

access specified object element with bounds checking

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;basic&lowbar;json&lowbar;key&lowbar;type&lt;basic&lowbar;json&lowbar;t, KeyType&gt;&colon;&colon;value
link:#nlohmann-basic_json-0e-const_reference[const&lowbar;reference]
at(KeyType&& key) const;
----

== Return Value

the type of an element const reference

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-reference[reference]
back();
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-const_reference[const&lowbar;reference]
back() const;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-iterator[iterator]
begin() noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-const_iterator[const&lowbar;iterator]
begin() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-const_iterator[const&lowbar;iterator]
cbegin() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-const_iterator[const&lowbar;iterator]
cend() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
clear() noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
bool
contains(link:#nlohmann-basic_json-0e-json_pointer[json&lowbar;pointer] const& ptr) const;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
bool
contains(object&lowbar;t::key&lowbar;type const& key) const;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename BasicJsonType&gt;
requires detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;BasicJsonType&gt;&colon;&colon;value
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
bool
contains(link:#nlohmann-json_pointer-0a[nlohmann::json&lowbar;pointer&lt;BasicJsonType&gt;] const& ptr) const;
----

check the existence of an element in a JSON object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;basic&lowbar;json&lowbar;key&lowbar;type&lt;basic&lowbar;json&lowbar;t, KeyType&gt;&colon;&colon;value
bool
contains(KeyType&& key) const;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-size_type[size&lowbar;type]
count(object&lowbar;t::key&lowbar;type const& key) const;
----

returns the number of occurrences of a key in a JSON object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;basic&lowbar;json&lowbar;key&lowbar;type&lt;basic&lowbar;json&lowbar;t, KeyType&gt;&colon;&colon;value
link:#nlohmann-basic_json-0e-size_type[size&lowbar;type]
count(KeyType&& key) const;
----

== Return Value

a type to represent container sizes

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-const_reverse_iterator[const&lowbar;reverse&lowbar;iterator]
crbegin() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-const_reverse_iterator[const&lowbar;reverse&lowbar;iterator]
crend() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-string_t[string&lowbar;t]
dump(
    int const indent = &hyphen;1,
    char const indent&lowbar;char = &apos; &apos;,
    bool const ensure&lowbar;ascii = false,
    link:#nlohmann-basic_json-00-error_handler_t[error&lowbar;handler&lowbar;t] const error&lowbar;handler = error&lowbar;handler&lowbar;t&colon;&colon;strict) const;
----

add an object to an object if key does not exist

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class&period;&period;&period; Args&gt;
std::pair&lt;iterator, bool&gt;
emplace(Args&period;&period;&period;&&&period;&period;&period; args);
----

add an object to an array

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class&period;&period;&period; Args&gt;
link:#nlohmann-basic_json-0e-reference[reference]
emplace&lowbar;back(Args&period;&period;&period;&&&period;&period;&period; args);
----

== Return Value

the type of an element reference

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
bool
empty() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-iterator[iterator]
end() noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-const_iterator[const&lowbar;iterator]
end() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
erase(link:#nlohmann-basic_json-00-size_type[size&lowbar;type] const idx);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-size_type[size&lowbar;type]
erase(object&lowbar;t::key&lowbar;type const& key);
----

remove element given an iterator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class IteratorType&gt;
requires std&colon;&colon;is&lowbar;same&lt;IteratorType, typename basic&lowbar;json&lowbar;t&colon;&colon;iterator&gt;&colon;&colon;value &verbar;&verbar;
                   std&colon;&colon;is&lowbar;same&lt;IteratorType, typename basic&lowbar;json&lowbar;t&colon;&colon;const&lowbar;iterator&gt;&colon;&colon;value
IteratorType
erase(IteratorType pos);
----

remove element from a JSON object given a key

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;basic&lowbar;json&lowbar;key&lowbar;type&lt;basic&lowbar;json&lowbar;t, KeyType&gt;&colon;&colon;value
link:#nlohmann-basic_json-0e-size_type[size&lowbar;type]
erase(KeyType&& key);
----

== Return Value

a type to represent container sizes

remove elements given an iterator range

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class IteratorType&gt;
requires std&colon;&colon;is&lowbar;same&lt;IteratorType, typename basic&lowbar;json&lowbar;t&colon;&colon;iterator&gt;&colon;&colon;value &verbar;&verbar;
                   std&colon;&colon;is&lowbar;same&lt;IteratorType, typename basic&lowbar;json&lowbar;t&colon;&colon;const&lowbar;iterator&gt;&colon;&colon;value
IteratorType
erase(
    IteratorType first,
    IteratorType last);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-iterator[iterator]
find(object&lowbar;t::key&lowbar;type const& key);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-const_iterator[const&lowbar;iterator]
find(object&lowbar;t::key&lowbar;type const& key) const;
----

find an element in a JSON object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;basic&lowbar;json&lowbar;key&lowbar;type&lt;basic&lowbar;json&lowbar;t, KeyType&gt;&colon;&colon;value
link:#nlohmann-basic_json-0e-iterator[iterator]
find(KeyType&& key);
----

== Return Value

an iterator for a basic&lowbar;json container

find an element in a JSON object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;basic&lowbar;json&lowbar;key&lowbar;type&lt;basic&lowbar;json&lowbar;t, KeyType&gt;&colon;&colon;value
link:#nlohmann-basic_json-0e-const_iterator[const&lowbar;iterator]
find(KeyType&& key) const;
----

== Return Value

a const iterator for a basic&lowbar;json container

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00[basic&lowbar;json]
flatten() const;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-reference[reference]
front();
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-const_reference[const&lowbar;reference]
front() const;
----

get a pointer value (explicit)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename PointerType&gt;
requires std&colon;&colon;is&lowbar;pointer&lt;PointerType&gt;&colon;&colon;value
decltype(std&colon;&colon;declval&lt;basic&lowbar;json&lowbar;t&amp;&gt;()&period;template get&lowbar;ptr&lt;PointerType&gt;())
get() noexcept;
----

== Description

Explicit pointer access to the internally stored JSON value&period; No copies are made&period;

[WARNING]
====
The pointer becomes invalid if the underlying JSON object changes&period;

====

Constant&period;

&lcub;The example below shows how pointers to internal values of a JSON value can be requested&period; Note that no type conversions are made and a `nullptr` is returned if the value and the requested pointer type does not match&period;,get&lowbar;&lowbar;PointerType&rcub;

== Return Value

pointer to the internally stored JSON value if the requested pointer type _PointerType_ fits to the JSON value&semi; `nullptr` otherwise

== Template Parameters

[cols=2]
|===
| Name
| Description
| *PointerType*
| pointer type&semi; must be a pointer to link:#nlohmann-basic_json-0e-array_t[`array&lowbar;t`], link:#nlohmann-basic_json-0e-object_t[`object&lowbar;t`], link:#nlohmann-basic_json-0e-string_t[`string&lowbar;t`], link:#nlohmann-basic_json-0e-boolean_t[`boolean&lowbar;t`], link:#nlohmann-basic_json-0e-number_integer_t[`number&lowbar;integer&lowbar;t`], link:#nlohmann-basic_json-0e-number_unsigned_t[`number&lowbar;unsigned&lowbar;t`], or link:#nlohmann-basic_json-0e-number_float_t[`number&lowbar;float&lowbar;t`]&period;
|===

get a (pointer) value (explicit)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename ValueTypeCV,
    typename ValueType = detail::uncvref&lowbar;t&lt;ValueTypeCV&gt;&gt;
constexpr
decltype(std&colon;&colon;declval&lt;const basic&lowbar;json&lowbar;t&amp;&gt;()&period;template get&lowbar;impl&lt;ValueType&gt;(detail&colon;&colon;priority&lowbar;tag&lt;4&gt; &lcub;&rcub;))
get() const noexcept(noexcept(std&colon;&colon;declval&lt;const basic&lowbar;json&lowbar;t &amp;&gt;()&period;template get&lowbar;impl&lt;ValueType&gt;(detail&colon;&colon;priority&lowbar;tag&lt;4&gt;&lcub;&rcub;)));
----

== Description

Performs explicit type conversion between the JSON value and a compatible value if required&period;

&hyphen; If the requested type is a pointer to the internally stored JSON value that pointer is returned&period; No copies are made&period;

&hyphen; If the requested type is the current link:#nlohmann-basic_json-0e-2constructor-0ab[`basic&lowbar;json`], or a different link:#nlohmann-basic_json-0e-2constructor-0ab[`basic&lowbar;json`] convertible from the current link:#nlohmann-basic_json-0e-2constructor-0ab[`basic&lowbar;json`]&period;

&hyphen; Otherwise the value is converted by calling the link:#nlohmann-basic_json-0e-json_serializer[`json&lowbar;serializer&lt;ValueType&gt;`] `from&lowbar;json()` method&period;

== Exceptions

[cols=2]
|===
| Name
| Thrown on
| `what`
| link:#nlohmann-basic_json-0e-json_serializer[`json&lowbar;serializer&lt;ValueType&gt;`] `from&lowbar;json()` method throws if conversion is required
|===

== Return Value

copy of the JSON value, converted to

== Template Parameters

[cols=2]
|===
| Name
| Description
| *ValueTypeCV*
| the provided value type
| *ValueType*
| the returned value type
| *ValueType*
| if necessary
|===

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-binary_t[binary&lowbar;t]&
get&lowbar;binary();
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-binary_t[binary&lowbar;t] const&
get&lowbar;binary() const;
----

get a pointer value (implicit)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename PointerType&gt;
requires std&colon;&colon;is&lowbar;pointer&lt;PointerType&gt;&colon;&colon;value
decltype(std&colon;&colon;declval&lt;basic&lowbar;json&lowbar;t&amp;&gt;()&period;get&lowbar;impl&lowbar;ptr(std&colon;&colon;declval&lt;PointerType&gt;()))
get&lowbar;ptr() noexcept;
----

get a pointer value (implicit)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename PointerType&gt;
requires std&colon;&colon;is&lowbar;pointer&lt;PointerType&gt;&colon;&colon;value&amp;&amp;
                   std&colon;&colon;is&lowbar;const&lt;typename std&colon;&colon;remove&lowbar;pointer&lt;PointerType&gt;&colon;&colon;type&gt;&colon;&colon;value
constexpr
decltype(std&colon;&colon;declval&lt;const basic&lowbar;json&lowbar;t&amp;&gt;()&period;get&lowbar;impl&lowbar;ptr(std&colon;&colon;declval&lt;PointerType&gt;()))
get&lowbar;ptr() const noexcept;
----

get a reference value (implicit)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename ReferenceType&gt;
requires std&colon;&colon;is&lowbar;reference&lt;ReferenceType&gt;&colon;&colon;value
ReferenceType
get&lowbar;ref();
----

get a reference value (implicit)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename ReferenceType&gt;
requires std&colon;&colon;is&lowbar;reference&lt;ReferenceType&gt;&colon;&colon;value&amp;&amp;
                   std&colon;&colon;is&lowbar;const&lt;typename std&colon;&colon;remove&lowbar;reference&lt;ReferenceType&gt;&colon;&colon;type&gt;&colon;&colon;value
ReferenceType
get&lowbar;ref() const;
----

get a value (explicit)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename ValueType&gt;
requires !detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;ValueType&gt;&colon;&colon;value&amp;&amp;
                   detail&colon;&colon;has&lowbar;from&lowbar;json&lt;basic&lowbar;json&lowbar;t, ValueType&gt;&colon;&colon;value
ValueType&
get&lowbar;to(ValueType& v) const noexcept(noexcept(JSONSerializer&lt;ValueType, void&gt;&colon;&colon;from&lowbar;json(std&colon;&colon;declval&lt;const basic&lowbar;json&lowbar;t &amp;&gt;(), v)));
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename ValueType&gt;
requires detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;ValueType&gt;&colon;&colon;value
ValueType&
get&lowbar;to(ValueType& v) const;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename T,
    std::size&lowbar;t N,
    typename Array = T(&)[]&gt;
requires detail&colon;&colon;has&lowbar;from&lowbar;json&lt;basic&lowbar;json&lowbar;t, Array&gt;&colon;&colon;value
Array
get&lowbar;to(T(& v)[]) const noexcept(noexcept(JSONSerializer&lt;Array, void&gt;&colon;&colon;from&lowbar;json(std&colon;&colon;declval&lt;const basic&lowbar;json&lowbar;t &amp;&gt;(), v)));
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
insert(
    link:#nlohmann-basic_json-0e-const_iterator[const&lowbar;iterator] first,
    link:#nlohmann-basic_json-0e-const_iterator[const&lowbar;iterator] last);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-iterator[iterator]
insert(
    link:#nlohmann-basic_json-0e-const_iterator[const&lowbar;iterator] pos,
    link:#nlohmann-basic_json-0e-initializer_list_t[initializer&lowbar;list&lowbar;t] ilist);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-iterator[iterator]
insert(
    link:#nlohmann-basic_json-0e-const_iterator[const&lowbar;iterator] pos,
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& val);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-iterator[iterator]
insert(
    link:#nlohmann-basic_json-0e-const_iterator[const&lowbar;iterator] pos,
    link:#nlohmann-basic_json-00[basic&lowbar;json]&& val);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-iterator[iterator]
insert(
    link:#nlohmann-basic_json-0e-const_iterator[const&lowbar;iterator] pos,
    link:#nlohmann-basic_json-0e-const_iterator[const&lowbar;iterator] first,
    link:#nlohmann-basic_json-0e-const_iterator[const&lowbar;iterator] last);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-iterator[iterator]
insert(
    link:#nlohmann-basic_json-0e-const_iterator[const&lowbar;iterator] pos,
    link:#nlohmann-basic_json-00-size_type[size&lowbar;type] cnt,
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& val);
----

Helper for insertion of an iterator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename&period;&period;&period; Args&gt;
link:#nlohmann-basic_json-0e-iterator[iterator]
insert&lowbar;iterator(
    link:#nlohmann-basic_json-0e-const_iterator[const&lowbar;iterator] pos,
    Args&period;&period;&period;&&&period;&period;&period; args);
----

== Description

[NOTE]
====
&colon; This uses std&colon;&colon;distance to support GCC 4&period;8, see https&colon;&sol;&sol;github&period;com&sol;nlohmann&sol;json&sol;pull&sol;1257

====

== Return Value

an iterator for a basic&lowbar;json container

== Parameters

[cols=2]
|===
| Name
| Description
| *pos*
| a const iterator for a basic&lowbar;json container
|===

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;array() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;binary() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;boolean() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;discarded() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;null() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;number() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;number&lowbar;float() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;number&lowbar;integer() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;number&lowbar;unsigned() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;object() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;primitive() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;string() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;structured() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e[iteration&lowbar;proxy&lt;iterator&gt;]
items() noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e[iteration&lowbar;proxy&lt;const&lowbar;iterator&gt;]
items() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-size_type[size&lowbar;type]
max&lowbar;size() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
merge&lowbar;patch(link:#nlohmann-basic_json-00[basic&lowbar;json] const& apply&lowbar;patch);
----

Addition assignment operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-reference[reference]
operator&plus;&equals;(link:#nlohmann-basic_json-0e-initializer_list_t[initializer&lowbar;list&lowbar;t] init);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *init*
| The right operand
|===

Addition assignment operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-reference[reference]
operator&plus;&equals;(object&lowbar;t::value&lowbar;type const& val);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *val*
| The right operand
|===

Addition assignment operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-reference[reference]
operator&plus;&equals;(link:#nlohmann-basic_json-00[basic&lowbar;json] const& val);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *val*
| The right operand
|===

Addition assignment operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-reference[reference]
operator&plus;&equals;(link:#nlohmann-basic_json-00[basic&lowbar;json]&& val);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *val*
| The right operand
|===

Subscript operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-reference[reference]
operator&lsqb;&rsqb;(object&lowbar;t::key&lowbar;type key);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *key*
| The right operand
|===

Subscript operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-reference[reference]
operator&lsqb;&rsqb;(link:#nlohmann-basic_json-00-size_type[size&lowbar;type] idx);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *idx*
| The right operand
|===

Subscript operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-const_reference[const&lowbar;reference]
operator&lsqb;&rsqb;(link:#nlohmann-basic_json-00-size_type[size&lowbar;type] idx) const;
----

== Return Value

the type of an element const reference

== Parameters

[cols=2]
|===
| Name
| Description
| *idx*
| The right operand
|===

Subscript operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-reference[reference]
operator&lsqb;&rsqb;(link:#nlohmann-basic_json-0e-json_pointer[json&lowbar;pointer] const& ptr);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *ptr*
| The right operand
|===

Subscript operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-const_reference[const&lowbar;reference]
operator&lsqb;&rsqb;(link:#nlohmann-basic_json-0e-json_pointer[json&lowbar;pointer] const& ptr) const;
----

== Return Value

the type of an element const reference

== Parameters

[cols=2]
|===
| Name
| Description
| *ptr*
| The right operand
|===

Subscript operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-const_reference[const&lowbar;reference]
operator&lsqb;&rsqb;(object&lowbar;t::key&lowbar;type const& key) const;
----

== Return Value

the type of an element const reference

== Parameters

[cols=2]
|===
| Name
| Description
| *key*
| The right operand
|===

Subscript operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename BasicJsonType&gt;
requires detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;BasicJsonType&gt;&colon;&colon;value
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
link:#nlohmann-basic_json-0e-reference[reference]
operator&lsqb;&rsqb;(link:#nlohmann-json_pointer-0a[nlohmann::json&lowbar;pointer&lt;BasicJsonType&gt;] const& ptr);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *ptr*
| The right operand
|===

Subscript operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename BasicJsonType&gt;
requires detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;BasicJsonType&gt;&colon;&colon;value
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
link:#nlohmann-basic_json-0e-const_reference[const&lowbar;reference]
operator&lsqb;&rsqb;(link:#nlohmann-json_pointer-0a[nlohmann::json&lowbar;pointer&lt;BasicJsonType&gt;] const& ptr) const;
----

== Return Value

the type of an element const reference

== Parameters

[cols=2]
|===
| Name
| Description
| *ptr*
| The right operand
|===

access specified object element

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;basic&lowbar;json&lowbar;key&lowbar;type&lt;basic&lowbar;json&lowbar;t, KeyType&gt;&colon;&colon;value
link:#nlohmann-basic_json-0e-reference[reference]
operator&lsqb;&rsqb;(KeyType&& key);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *key*
| The right operand
|===

access specified object element

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;basic&lowbar;json&lowbar;key&lowbar;type&lt;basic&lowbar;json&lowbar;t, KeyType&gt;&colon;&colon;value
link:#nlohmann-basic_json-0e-const_reference[const&lowbar;reference]
operator&lsqb;&rsqb;(KeyType&& key) const;
----

== Return Value

the type of an element const reference

== Parameters

[cols=2]
|===
| Name
| Description
| *key*
| The right operand
|===

Subscript operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename T&gt;
link:#nlohmann-basic_json-0e-reference[reference]
operator&lsqb;&rsqb;(T* key);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *key*
| The right operand
|===

Subscript operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename T&gt;
link:#nlohmann-basic_json-0e-const_reference[const&lowbar;reference]
operator&lsqb;&rsqb;(T* key) const;
----

== Return Value

the type of an element const reference

== Parameters

[cols=2]
|===
| Name
| Description
| *key*
| The right operand
|===

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00[basic&lowbar;json]
patch(link:#nlohmann-basic_json-00[basic&lowbar;json] const& json&lowbar;patch) const;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
patch&lowbar;inplace(link:#nlohmann-basic_json-00[basic&lowbar;json] const& json&lowbar;patch);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
push&lowbar;back(link:#nlohmann-basic_json-0e-initializer_list_t[initializer&lowbar;list&lowbar;t] init);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
push&lowbar;back(object&lowbar;t::value&lowbar;type const& val);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
push&lowbar;back(link:#nlohmann-basic_json-00[basic&lowbar;json] const& val);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
push&lowbar;back(link:#nlohmann-basic_json-00[basic&lowbar;json]&& val);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-reverse_iterator[reverse&lowbar;iterator]
rbegin() noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-const_reverse_iterator[const&lowbar;reverse&lowbar;iterator]
rbegin() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-reverse_iterator[reverse&lowbar;iterator]
rend() noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-const_reverse_iterator[const&lowbar;reverse&lowbar;iterator]
rend() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-size_type[size&lowbar;type]
size() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
swap(link:#nlohmann-basic_json-0e-reference[reference] other) noexcept(std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;constructible&lt;value&lowbar;t&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;assignable&lt;value&lowbar;t&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;constructible&lt;json&lowbar;value&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;assignable&lt;json&lowbar;value&gt;&colon;&colon;value);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
swap(link:#nlohmann-basic_json-0e-array_t[array&lowbar;t]& other);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
swap(link:#nlohmann-basic_json-0e-binary_t[binary&lowbar;t]& other);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
swap(link:#nlohmann-byte_container_with_subtype-09-container_type[binary&lowbar;t::container&lowbar;type]& other);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
swap(link:#nlohmann-basic_json-0e-object_t[object&lowbar;t]& other);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
swap(link:#nlohmann-basic_json-0e-string_t[string&lowbar;t]& other);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
link:#nlohmann-basic_json-00-value_t[value&lowbar;t]
type() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;returns&lowbar;nonnull&lowbar;&lowbar;&rsqb;&rsqb;
char const*
type&lowbar;name() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00[basic&lowbar;json]
unflatten() const;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
update(
    link:#nlohmann-basic_json-0e-const_reference[const&lowbar;reference] j,
    bool merge&lowbar;objects = false);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
update(
    link:#nlohmann-basic_json-0e-const_iterator[const&lowbar;iterator] first,
    link:#nlohmann-basic_json-0e-const_iterator[const&lowbar;iterator] last,
    bool merge&lowbar;objects = false);
----

access specified object element via JSON Pointer with default value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class ValueType&gt;
requires detail&colon;&colon;is&lowbar;getable&lt;basic&lowbar;json&lowbar;t, ValueType&gt;&colon;&colon;value
                   &amp;&amp; !std&colon;&colon;is&lowbar;same&lt;value&lowbar;t, detail&colon;&colon;uncvref&lowbar;t&lt;ValueType&gt;&gt;&colon;&colon;value
ValueType
value(
    link:#nlohmann-basic_json-0e-json_pointer[json&lowbar;pointer] const& ptr,
    ValueType const& default&lowbar;value) const;
----

== Parameters

[cols=2]
|===
| Name
| Description
| *ptr*
| JSON Pointer, see link:#nlohmann-json_pointer-0b[`nlohmann&colon;&colon;json&lowbar;pointer`]
|===

access specified object element with default value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class ValueType&gt;
requires !detail&colon;&colon;is&lowbar;transparent&lt;object&lowbar;comparator&lowbar;t&gt;&colon;&colon;value
                   &amp;&amp; detail&colon;&colon;is&lowbar;getable&lt;basic&lowbar;json&lowbar;t, ValueType&gt;&colon;&colon;value
                   &amp;&amp; !std&colon;&colon;is&lowbar;same&lt;value&lowbar;t, detail&colon;&colon;uncvref&lowbar;t&lt;ValueType&gt;&gt;&colon;&colon;value
ValueType
value(
    object&lowbar;t::key&lowbar;type const& key,
    ValueType const& default&lowbar;value) const;
----

access specified object element via JSON Pointer with default value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ValueType,
    class ReturnType = value&lowbar;return&lowbar;type&lt;ValueType&gt;::type&gt;
requires detail&colon;&colon;is&lowbar;getable&lt;basic&lowbar;json&lowbar;t, ReturnType&gt;&colon;&colon;value
                   &amp;&amp; !std&colon;&colon;is&lowbar;same&lt;value&lowbar;t, detail&colon;&colon;uncvref&lowbar;t&lt;ValueType&gt;&gt;&colon;&colon;value
ReturnType
value(
    link:#nlohmann-basic_json-0e-json_pointer[json&lowbar;pointer] const& ptr,
    ValueType&& default&lowbar;value) const;
----

== Parameters

[cols=2]
|===
| Name
| Description
| *ptr*
| JSON Pointer, see link:#nlohmann-json_pointer-0b[`nlohmann&colon;&colon;json&lowbar;pointer`]
|===

access specified object element with default value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ValueType,
    class ReturnType = value&lowbar;return&lowbar;type&lt;ValueType&gt;::type&gt;
requires !detail&colon;&colon;is&lowbar;transparent&lt;object&lowbar;comparator&lowbar;t&gt;&colon;&colon;value
                   &amp;&amp; detail&colon;&colon;is&lowbar;getable&lt;basic&lowbar;json&lowbar;t, ReturnType&gt;&colon;&colon;value
                   &amp;&amp; !std&colon;&colon;is&lowbar;same&lt;value&lowbar;t, detail&colon;&colon;uncvref&lowbar;t&lt;ValueType&gt;&gt;&colon;&colon;value
ReturnType
value(
    object&lowbar;t::key&lowbar;type const& key,
    ValueType&& default&lowbar;value) const;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ValueType,
    class BasicJsonType&gt;
requires detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;BasicJsonType&gt;&colon;&colon;value
                   &amp;&amp; detail&colon;&colon;is&lowbar;getable&lt;basic&lowbar;json&lowbar;t, ValueType&gt;&colon;&colon;value
                   &amp;&amp; !std&colon;&colon;is&lowbar;same&lt;value&lowbar;t, detail&colon;&colon;uncvref&lowbar;t&lt;ValueType&gt;&gt;&colon;&colon;value
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
ValueType
value(
    link:#nlohmann-json_pointer-0a[nlohmann::json&lowbar;pointer&lt;BasicJsonType&gt;] const& ptr,
    ValueType const& default&lowbar;value) const;
----

access specified object element with default value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ValueType,
    class KeyType&gt;
requires detail&colon;&colon;is&lowbar;transparent&lt;object&lowbar;comparator&lowbar;t&gt;&colon;&colon;value
                   &amp;&amp; !detail&colon;&colon;is&lowbar;json&lowbar;pointer&lt;KeyType&gt;&colon;&colon;value
                   &amp;&amp; is&lowbar;comparable&lowbar;with&lowbar;object&lowbar;key&lt;KeyType&gt;&colon;&colon;value
                   &amp;&amp; detail&colon;&colon;is&lowbar;getable&lt;basic&lowbar;json&lowbar;t, ValueType&gt;&colon;&colon;value
                   &amp;&amp; !std&colon;&colon;is&lowbar;same&lt;value&lowbar;t, detail&colon;&colon;uncvref&lowbar;t&lt;ValueType&gt;&gt;&colon;&colon;value
ValueType
value(
    KeyType&& key,
    ValueType const& default&lowbar;value) const;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ValueType,
    class BasicJsonType,
    class ReturnType = value&lowbar;return&lowbar;type&lt;ValueType&gt;::type&gt;
requires detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;BasicJsonType&gt;&colon;&colon;value
                   &amp;&amp; detail&colon;&colon;is&lowbar;getable&lt;basic&lowbar;json&lowbar;t, ReturnType&gt;&colon;&colon;value
                   &amp;&amp; !std&colon;&colon;is&lowbar;same&lt;value&lowbar;t, detail&colon;&colon;uncvref&lowbar;t&lt;ValueType&gt;&gt;&colon;&colon;value
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
ReturnType
value(
    link:#nlohmann-json_pointer-0a[nlohmann::json&lowbar;pointer&lt;BasicJsonType&gt;] const& ptr,
    ValueType&& default&lowbar;value) const;
----

access specified object element via JSON Pointer with default value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ValueType,
    class KeyType,
    class ReturnType = value&lowbar;return&lowbar;type&lt;ValueType&gt;::type&gt;
requires detail&colon;&colon;is&lowbar;transparent&lt;object&lowbar;comparator&lowbar;t&gt;&colon;&colon;value
                   &amp;&amp; !detail&colon;&colon;is&lowbar;json&lowbar;pointer&lt;KeyType&gt;&colon;&colon;value
                   &amp;&amp; is&lowbar;comparable&lowbar;with&lowbar;object&lowbar;key&lt;KeyType&gt;&colon;&colon;value
                   &amp;&amp; detail&colon;&colon;is&lowbar;getable&lt;basic&lowbar;json&lowbar;t, ReturnType&gt;&colon;&colon;value
                   &amp;&amp; !std&colon;&colon;is&lowbar;same&lt;value&lowbar;t, detail&colon;&colon;uncvref&lowbar;t&lt;ValueType&gt;&gt;&colon;&colon;value
ReturnType
value(
    KeyType&& key,
    ValueType&& default&lowbar;value) const;
----

get a value (implicit)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename ValueType&gt;
requires detail&colon;&colon;conjunction &lt;
                       detail&colon;&colon;negation&lt;std&colon;&colon;is&lowbar;pointer&lt;ValueType&gt;&gt;,
                       detail&colon;&colon;negation&lt;std&colon;&colon;is&lowbar;same&lt;ValueType, std&colon;&colon;nullptr&lowbar;t&gt;&gt;,
                       detail&colon;&colon;negation&lt;std&colon;&colon;is&lowbar;same&lt;ValueType, detail&colon;&colon;json&lowbar;ref&lt;basic&lowbar;json&gt;&gt;&gt;,
                                        detail&colon;&colon;negation&lt;std&colon;&colon;is&lowbar;same&lt;ValueType, typename string&lowbar;t&colon;&colon;value&lowbar;type&gt;&gt;,
                                        detail&colon;&colon;negation&lt;detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;ValueType&gt;&gt;,
                                        detail&colon;&colon;negation&lt;std&colon;&colon;is&lowbar;same&lt;ValueType, std&colon;&colon;initializer&lowbar;list&lt;typename string&lowbar;t&colon;&colon;value&lowbar;type&gt;&gt;&gt;,
&num;if defined(JSON&lowbar;HAS&lowbar;CPP&lowbar;17) &amp;&amp; (defined(&lowbar;&lowbar;GNUC&lowbar;&lowbar;) &verbar;&verbar; (defined(&lowbar;MSC&lowbar;VER) &amp;&amp; &lowbar;MSC&lowbar;VER &gt;&equals; 1910 &amp;&amp; &lowbar;MSC&lowbar;VER &lt;&equals; 1914))
                                                detail&colon;&colon;negation&lt;std&colon;&colon;is&lowbar;same&lt;ValueType, std&colon;&colon;string&lowbar;view&gt;&gt;,
&num;endif
&num;if defined(JSON&lowbar;HAS&lowbar;CPP&lowbar;17) &amp;&amp; JSON&lowbar;HAS&lowbar;STATIC&lowbar;RTTI
                                                detail&colon;&colon;negation&lt;std&colon;&colon;is&lowbar;same&lt;ValueType, std&colon;&colon;any&gt;&gt;,
&num;endif
                                                detail&colon;&colon;is&lowbar;detected&lowbar;lazy&lt;detail&colon;&colon;get&lowbar;template&lowbar;function, const basic&lowbar;json&lowbar;t&amp;, ValueType&gt;
                                                &gt;&colon;&colon;value
operator ValueType() const;
----

== Description

Implicit type conversion between the JSON value and a compatible value&period; The call is realized by calling link:#nlohmann-basic_json-0e-get-01[`get() const`]&period;

Linear in the size of the JSON value&period;

&lcub;The example below shows several conversions from JSON values to other types&period; There a few things to note&colon; (1) Floating&hyphen;point numbers can be converted to integers, (2) A JSON array can be converted to a standard `std&colon;&colon;vector&lt;short&gt;`, (3) A JSON object can be converted to C&plus;&plus; associative containers such as `std&colon;&colon;unordered&lowbar;map&lt;std&colon;&colon;string&bsol;, json&gt;`&period;,operator&lowbar;&lowbar;ValueType&rcub;

== Exceptions

[cols=2]
|===
| Name
| Thrown on
| `type&lowbar;error&period;302`
| in case passed type _ValueType_ is incompatible to the JSON value type (e&period;g&period;, the JSON value is of type boolean, but a string is requested)&semi; see example below
|===

== Return Value

copy of the JSON value, converted to type _ValueType_

== Template Parameters

[cols=2]
|===
| Name
| Description
| *ValueType*
| non&hyphen;pointer type compatible to the JSON value, for instance `int` for JSON integer numbers, `bool` for JSON booleans, or `std&colon;&colon;vector` types for JSON arrays&period; The character type of link:#nlohmann-basic_json-0e-string_t[`string&lowbar;t`] as well as an initializer list of this type is excluded to avoid ambiguities as these types implicitly convert to `std&colon;&colon;string`&period;
|===

Conversion to `value&lowbar;t`

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
operator link:#nlohmann-basic_json-00-value_t[value&lowbar;t]() const noexcept;
----

== Return Value

The object converted to `value&lowbar;t`

comparison&colon; equal

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename ScalarType&gt;
requires std&colon;&colon;is&lowbar;scalar&lowbar;v&lt;ScalarType&gt;
bool
operator&equals;&equals;(ScalarType rhs) const noexcept;
----

== Return Value

`true` if the objects are equal, `false` otherwise

== Parameters

[cols=2]
|===
| Name
| Description
| *rhs*
| The right operand
|===

Equality operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
bool
operator&equals;&equals;(link:#nlohmann-basic_json-0e-const_reference[const&lowbar;reference] rhs) const noexcept;
----

== Return Value

`true` if the objects are equal, `false` otherwise

== Parameters

[cols=2]
|===
| Name
| Description
| *rhs*
| The right operand
|===

Inequality operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
bool
operator!&equals;(link:#nlohmann-basic_json-0e-const_reference[const&lowbar;reference] rhs) const noexcept;
----

== Return Value

`true` if the objects are not equal, `false` otherwise

== Parameters

[cols=2]
|===
| Name
| Description
| *rhs*
| The right operand
|===

comparison&colon; 3&hyphen;way

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename ScalarType&gt;
requires std&colon;&colon;is&lowbar;scalar&lowbar;v&lt;ScalarType&gt;
std::partial&lowbar;ordering
operator&lt;&equals;&gt;(ScalarType rhs) const noexcept;
----

== Return Value

The relative order of the objects

== Parameters

[cols=2]
|===
| Name
| Description
| *rhs*
| The right operand
|===

Three&hyphen;way comparison operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::partial&lowbar;ordering
operator&lt;&equals;&gt;(link:#nlohmann-basic_json-0e-const_reference[const&lowbar;reference] rhs) const noexcept;
----

== Return Value

The relative order of the objects

== Parameters

[cols=2]
|===
| Name
| Description
| *rhs*
| The right operand
|===

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;, &lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
bool
accept(
    detail::span&lowbar;input&lowbar;adapter&& i,
    bool const ignore&lowbar;comments = false,
    bool const ignore&lowbar;trailing&lowbar;commas = false);
----

check if the input is valid JSON

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename InputType&gt;
static
bool
accept(
    InputType&& i,
    bool const ignore&lowbar;comments = false,
    bool const ignore&lowbar;trailing&lowbar;commas = false);
----

check if the input is valid JSON

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename IteratorType&gt;
static
bool
accept(
    IteratorType first,
    IteratorType last,
    bool const ignore&lowbar;comments = false,
    bool const ignore&lowbar;trailing&lowbar;commas = false);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
array(link:#nlohmann-basic_json-0e-initializer_list_t[initializer&lowbar;list&lowbar;t] init = &lcub;&rcub;);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
binary(link:#nlohmann-byte_container_with_subtype-09-container_type[binary&lowbar;t::container&lowbar;type] const& init);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
binary(link:#nlohmann-byte_container_with_subtype-09-container_type[binary&lowbar;t::container&lowbar;type]&& init);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
binary(
    link:#nlohmann-byte_container_with_subtype-09-container_type[binary&lowbar;t::container&lowbar;type] const& init,
    link:#nlohmann-byte_container_with_subtype-09-subtype_type[binary&lowbar;t::subtype&lowbar;type] subtype);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
binary(
    link:#nlohmann-byte_container_with_subtype-09-container_type[binary&lowbar;t::container&lowbar;type]&& init,
    link:#nlohmann-byte_container_with_subtype-09-subtype_type[binary&lowbar;t::subtype&lowbar;type] subtype);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
diff(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& source,
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& target,
    link:#nlohmann-basic_json-0e-string_t[string&lowbar;t] const& path = &quot;&quot;);
----

create a JSON value from an input in BJData format

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename InputType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;bjdata(
    InputType&& i,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

== Return Value

a class to store JSON values

create a JSON value from an input in BJData format

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename IteratorType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;bjdata(
    IteratorType first,
    IteratorType last,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

== Return Value

a class to store JSON values

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;, &lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;bson(
    detail::span&lowbar;input&lowbar;adapter&& i,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

create a JSON value from an input in BSON format

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename InputType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;bson(
    InputType&& i,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

== Return Value

a class to store JSON values

create a JSON value from an input in BSON format

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename IteratorType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;bson(
    IteratorType first,
    IteratorType last,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

== Return Value

a class to store JSON values

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename T&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;, &lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;bson(
    T const* ptr,
    std::size&lowbar;t len,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;, &lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;cbor(
    detail::span&lowbar;input&lowbar;adapter&& i,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true,
    link:#nlohmann-basic_json-00-cbor_tag_handler_t[cbor&lowbar;tag&lowbar;handler&lowbar;t] const tag&lowbar;handler = cbor&lowbar;tag&lowbar;handler&lowbar;t&colon;&colon;error);
----

create a JSON value from an input in CBOR format

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename InputType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;cbor(
    InputType&& i,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true,
    link:#nlohmann-basic_json-00-cbor_tag_handler_t[cbor&lowbar;tag&lowbar;handler&lowbar;t] const tag&lowbar;handler = cbor&lowbar;tag&lowbar;handler&lowbar;t&colon;&colon;error);
----

== Return Value

a class to store JSON values

== Parameters

[cols=2]
|===
| Name
| Description
| *tag&lowbar;handler*
| how to treat CBOR tags
|===

create a JSON value from an input in CBOR format

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename IteratorType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;cbor(
    IteratorType first,
    IteratorType last,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true,
    link:#nlohmann-basic_json-00-cbor_tag_handler_t[cbor&lowbar;tag&lowbar;handler&lowbar;t] const tag&lowbar;handler = cbor&lowbar;tag&lowbar;handler&lowbar;t&colon;&colon;error);
----

== Return Value

a class to store JSON values

== Parameters

[cols=2]
|===
| Name
| Description
| *tag&lowbar;handler*
| how to treat CBOR tags
|===

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename T&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;, &lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;cbor(
    T const* ptr,
    std::size&lowbar;t len,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true,
    link:#nlohmann-basic_json-00-cbor_tag_handler_t[cbor&lowbar;tag&lowbar;handler&lowbar;t] const tag&lowbar;handler = cbor&lowbar;tag&lowbar;handler&lowbar;t&colon;&colon;error);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;, &lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;msgpack(
    detail::span&lowbar;input&lowbar;adapter&& i,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

create a JSON value from an input in MessagePack format

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename InputType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;msgpack(
    InputType&& i,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

== Return Value

a class to store JSON values

create a JSON value from an input in MessagePack format

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename IteratorType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;msgpack(
    IteratorType first,
    IteratorType last,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

== Return Value

a class to store JSON values

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename T&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;, &lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;msgpack(
    T const* ptr,
    std::size&lowbar;t len,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;, &lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;ubjson(
    detail::span&lowbar;input&lowbar;adapter&& i,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

create a JSON value from an input in UBJSON format

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename InputType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;ubjson(
    InputType&& i,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

== Return Value

a class to store JSON values

create a JSON value from an input in UBJSON format

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename IteratorType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;ubjson(
    IteratorType first,
    IteratorType last,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

== Return Value

a class to store JSON values

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename T&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;, &lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;ubjson(
    T const* ptr,
    std::size&lowbar;t len,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
link:#nlohmann-basic_json-0e-allocator_type[allocator&lowbar;type]
get&lowbar;allocator();
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-0e[iteration&lowbar;proxy&lt;const&lowbar;iterator&gt;]
iterator&lowbar;wrapper(link:#nlohmann-basic_json-0e-const_reference[const&lowbar;reference] ref) noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-0e[iteration&lowbar;proxy&lt;iterator&gt;]
iterator&lowbar;wrapper(link:#nlohmann-basic_json-0e-reference[reference] ref) noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
meta();
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
object(link:#nlohmann-basic_json-0e-initializer_list_t[initializer&lowbar;list&lowbar;t] init = &lcub;&rcub;);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;, &lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
parse(
    detail::span&lowbar;input&lowbar;adapter&& i,
    link:#nlohmann-basic_json-0e-parser_callback_t[parser&lowbar;callback&lowbar;t] cb = nullptr,
    bool const allow&lowbar;exceptions = true,
    bool const ignore&lowbar;comments = false,
    bool const ignore&lowbar;trailing&lowbar;commas = false);
----

deserialize from a compatible input

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename InputType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
parse(
    InputType&& i,
    link:#nlohmann-basic_json-0e-parser_callback_t[parser&lowbar;callback&lowbar;t] cb = nullptr,
    bool const allow&lowbar;exceptions = true,
    bool const ignore&lowbar;comments = false,
    bool const ignore&lowbar;trailing&lowbar;commas = false);
----

== Return Value

a class to store JSON values

== Parameters

[cols=2]
|===
| Name
| Description
| *cb*
| per&hyphen;element parser callback type
|===

deserialize from a pair of character iterators

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename IteratorType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
parse(
    IteratorType first,
    IteratorType last,
    link:#nlohmann-basic_json-0e-parser_callback_t[parser&lowbar;callback&lowbar;t] cb = nullptr,
    bool const allow&lowbar;exceptions = true,
    bool const ignore&lowbar;comments = false,
    bool const ignore&lowbar;trailing&lowbar;commas = false);
----

== Return Value

a class to store JSON values

== Parameters

[cols=2]
|===
| Name
| Description
| *cb*
| per&hyphen;element parser callback type
|===

generate SAX events

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename SAX&gt;
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;, &lowbar;&lowbar;nonnull&lowbar;&lowbar;&rsqb;&rsqb;
static
bool
sax&lowbar;parse(
    detail::span&lowbar;input&lowbar;adapter&& i,
    SAX* sax,
    link:#nlohmann-basic_json-00-input_format_t[input&lowbar;format&lowbar;t] format = input&lowbar;format&lowbar;t&colon;&colon;json,
    bool const strict = true,
    bool const ignore&lowbar;comments = false,
    bool const ignore&lowbar;trailing&lowbar;commas = false);
----

generate SAX events

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename InputType,
    typename SAX&gt;
&lsqb;&lsqb;&lowbar;&lowbar;nonnull&lowbar;&lowbar;&rsqb;&rsqb;
static
bool
sax&lowbar;parse(
    InputType&& i,
    SAX* sax,
    link:#nlohmann-basic_json-00-input_format_t[input&lowbar;format&lowbar;t] format = input&lowbar;format&lowbar;t&colon;&colon;json,
    bool const strict = true,
    bool const ignore&lowbar;comments = false,
    bool const ignore&lowbar;trailing&lowbar;commas = false);
----

generate SAX events

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class IteratorType,
    class SAX&gt;
&lsqb;&lsqb;&lowbar;&lowbar;nonnull&lowbar;&lowbar;&rsqb;&rsqb;
static
bool
sax&lowbar;parse(
    IteratorType first,
    IteratorType last,
    SAX* sax,
    link:#nlohmann-basic_json-00-input_format_t[input&lowbar;format&lowbar;t] format = input&lowbar;format&lowbar;t&colon;&colon;json,
    bool const strict = true,
    bool const ignore&lowbar;comments = false,
    bool const ignore&lowbar;trailing&lowbar;commas = false);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
std::vector&lt;uint8&lowbar;t&gt;
to&lowbar;bjdata(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    bool const use&lowbar;size = false,
    bool const use&lowbar;type = false,
    link:#nlohmann-basic_json-00-bjdata_version_t[bjdata&lowbar;version&lowbar;t] const version = bjdata&lowbar;version&lowbar;t&colon;&colon;draft2);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
void
to&lowbar;bjdata(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    detail::output&lowbar;adapter&lt;uint8&lowbar;t&gt; o,
    bool const use&lowbar;size = false,
    bool const use&lowbar;type = false,
    link:#nlohmann-basic_json-00-bjdata_version_t[bjdata&lowbar;version&lowbar;t] const version = bjdata&lowbar;version&lowbar;t&colon;&colon;draft2);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
void
to&lowbar;bjdata(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    detail::output&lowbar;adapter&lt;char&gt; o,
    bool const use&lowbar;size = false,
    bool const use&lowbar;type = false,
    link:#nlohmann-basic_json-00-bjdata_version_t[bjdata&lowbar;version&lowbar;t] const version = bjdata&lowbar;version&lowbar;t&colon;&colon;draft2);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
std::vector&lt;uint8&lowbar;t&gt;
to&lowbar;bson(link:#nlohmann-basic_json-00[basic&lowbar;json] const& j);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
void
to&lowbar;bson(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    detail::output&lowbar;adapter&lt;uint8&lowbar;t&gt; o);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
void
to&lowbar;bson(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    detail::output&lowbar;adapter&lt;char&gt; o);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
std::vector&lt;uint8&lowbar;t&gt;
to&lowbar;cbor(link:#nlohmann-basic_json-00[basic&lowbar;json] const& j);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
void
to&lowbar;cbor(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    detail::output&lowbar;adapter&lt;uint8&lowbar;t&gt; o);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
void
to&lowbar;cbor(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    detail::output&lowbar;adapter&lt;char&gt; o);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
std::vector&lt;uint8&lowbar;t&gt;
to&lowbar;msgpack(link:#nlohmann-basic_json-00[basic&lowbar;json] const& j);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
void
to&lowbar;msgpack(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    detail::output&lowbar;adapter&lt;uint8&lowbar;t&gt; o);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
void
to&lowbar;msgpack(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    detail::output&lowbar;adapter&lt;char&gt; o);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
std::vector&lt;uint8&lowbar;t&gt;
to&lowbar;ubjson(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    bool const use&lowbar;size = false,
    bool const use&lowbar;type = false);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
void
to&lowbar;ubjson(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    detail::output&lowbar;adapter&lt;uint8&lowbar;t&gt; o,
    bool const use&lowbar;size = false,
    bool const use&lowbar;type = false);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
void
to&lowbar;ubjson(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    detail::output&lowbar;adapter&lt;char&gt; o,
    bool const use&lowbar;size = false,
    bool const use&lowbar;type = false);
----

a class to store JSON values

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    template&lt;
    typename U,
    typename V,
    typename&period;&period;&period; Args&gt; typename ObjectType = map,
    template&lt;
    typename U,
    typename&period;&period;&period; Args&gt; typename ArrayType = vector,
    class StringType = std::string,
    class BooleanType = bool,
    class NumberIntegerType = int64&lowbar;t,
    class NumberUnsignedType = uint64&lowbar;t,
    class NumberFloatType = double,
    template&lt;typename U&gt; typename AllocatorType = allocator,
    template&lt;
    typename T,
    typename SFINAE = void&gt; typename JSONSerializer = adl&lowbar;serializer,
    class BinaryType = std::vector&lt;uint8&lowbar;t&gt;,
    class CustomBaseClass = void&gt;
class basic&lowbar;json
    : public nlohmann::detail::json&lowbar;base&lowbar;class&lt;CustomBaseClass&gt;
----

== Base Classes

[cols=2]
|===
| Name
| Description
| `nlohmann::detail::json&lowbar;base&lowbar;class&lt;CustomBaseClass&gt;`
| 
|===

== Types

[cols=2]
|===
| Name
| Description
| link:#nlohmann-basic_json-00-allocator_type[`allocator&lowbar;type`] 
| the allocator type
| link:#nlohmann-basic_json-00-array_t[`array&lowbar;t`] 
| a type for an array
| link:#nlohmann-basic_json-00-binary_t[`binary&lowbar;t`] 
| a type for a packed binary type
| link:#nlohmann-basic_json-00-bjdata_version_t[`bjdata&lowbar;version&lowbar;t`] 
| how to encode BJData
| link:#nlohmann-basic_json-00-boolean_t[`boolean&lowbar;t`] 
| a type for a boolean
| link:#nlohmann-basic_json-00-cbor_tag_handler_t[`cbor&lowbar;tag&lowbar;handler&lowbar;t`] 
| how to treat CBOR tags
| link:#nlohmann-basic_json-00-const_iterator[`const&lowbar;iterator`] 
| a const iterator for a basic&lowbar;json container
| link:#nlohmann-basic_json-00-const_pointer[`const&lowbar;pointer`] 
| the type of an element const pointer
| link:#nlohmann-basic_json-00-const_reference[`const&lowbar;reference`] 
| the type of an element const reference
| link:#nlohmann-basic_json-00-const_reverse_iterator[`const&lowbar;reverse&lowbar;iterator`] 
| a const reverse iterator for a basic&lowbar;json container
| link:#nlohmann-basic_json-00-default_object_comparator_t[`default&lowbar;object&lowbar;comparator&lowbar;t`] 
| 
| link:#nlohmann-basic_json-00-difference_type[`difference&lowbar;type`] 
| a type to represent differences between iterators
| link:#nlohmann-basic_json-00-error_handler_t[`error&lowbar;handler&lowbar;t`] 
| how to treat decoding errors
| link:#nlohmann-basic_json-00-exception[`exception`] 
| Classes to implement user&hyphen;defined exceptions&period; @&lcub;
| link:#nlohmann-basic_json-00-initializer_list_t[`initializer&lowbar;list&lowbar;t`] 
| helper type for initializer lists of basic&lowbar;json values
| link:#nlohmann-basic_json-00-input_format_t[`input&lowbar;format&lowbar;t`] 
| 
| link:#nlohmann-basic_json-00-invalid_iterator[`invalid&lowbar;iterator`] 
| 
| link:#nlohmann-basic_json-00-iterator[`iterator`] 
| an iterator for a basic&lowbar;json container
| link:#nlohmann-basic_json-00-json_pointer[`json&lowbar;pointer`] 
| JSON Pointer, see link:#nlohmann-json_pointer-0b[`nlohmann&colon;&colon;json&lowbar;pointer`]
| link:#nlohmann-basic_json-00-json_sax_t[`json&lowbar;sax&lowbar;t`] 
| SAX interface type, see `nlohmann&colon;&colon;json&lowbar;sax`
| link:#nlohmann-basic_json-00-json_serializer[`json&lowbar;serializer`] 
| 
| link:#nlohmann-basic_json-00-number_float_t[`number&lowbar;float&lowbar;t`] 
| a type for a number (floating&hyphen;point)
| link:#nlohmann-basic_json-00-number_integer_t[`number&lowbar;integer&lowbar;t`] 
| a type for a number (integer)
| link:#nlohmann-basic_json-00-number_unsigned_t[`number&lowbar;unsigned&lowbar;t`] 
| a type for a number (unsigned)
| link:#nlohmann-basic_json-00-object_comparator_t[`object&lowbar;comparator&lowbar;t`] 
| object key comparator type
| link:#nlohmann-basic_json-00-object_t[`object&lowbar;t`] 
| a type for an object
| link:#nlohmann-basic_json-00-other_error[`other&lowbar;error`] 
| 
| link:#nlohmann-basic_json-00-out_of_range[`out&lowbar;of&lowbar;range`] 
| 
| link:#nlohmann-basic_json-00-parse_error[`parse&lowbar;error`] 
| 
| link:#nlohmann-basic_json-00-parse_event_t[`parse&lowbar;event&lowbar;t`] 
| parser event types
| link:#nlohmann-basic_json-00-parser_callback_t[`parser&lowbar;callback&lowbar;t`] 
| per&hyphen;element parser callback type
| link:#nlohmann-basic_json-00-pointer[`pointer`] 
| the type of an element pointer
| link:#nlohmann-basic_json-00-reference[`reference`] 
| the type of an element reference
| link:#nlohmann-basic_json-00-reverse_iterator[`reverse&lowbar;iterator`] 
| a reverse iterator for a basic&lowbar;json container
| link:#nlohmann-basic_json-00-size_type[`size&lowbar;type`] 
| a type to represent container sizes
| link:#nlohmann-basic_json-00-string_t[`string&lowbar;t`] 
| a type for a string
| link:#nlohmann-basic_json-00-type_error[`type&lowbar;error`] 
| 
| link:#nlohmann-basic_json-00-value_t[`value&lowbar;t`] 
| 
| link:#nlohmann-basic_json-00-value_type[`value&lowbar;type`] 
| the type of elements in a basic&lowbar;json container
|===

== Member Functions

[cols=2]
|===
| Name
| Description
| link:#nlohmann-basic_json-00-2constructor-0f[`basic&lowbar;json`]         [.small]#[constructor]#
| copy constructor
| link:#nlohmann-basic_json-00-2constructor-08[`basic&lowbar;json`]         [.small]#[constructor]#
| move constructor
| link:#nlohmann-basic_json-00-2constructor-02[`basic&lowbar;json`]         [.small]#[constructor]#
| create a null object
| link:#nlohmann-basic_json-00-2constructor-0c2[`basic&lowbar;json`]         [.small]#[constructor]#
| create an empty value with a given type
| link:#nlohmann-basic_json-00-2constructor-04[`basic&lowbar;json`]         [.small]#[constructor]#
| create a JSON value from an existing one
| link:#nlohmann-basic_json-00-2constructor-01[`basic&lowbar;json`]         [.small]#[constructor]#
| &sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;
| link:#nlohmann-basic_json-00-2constructor-00[`basic&lowbar;json`]         [.small]#[constructor]#
| create a JSON value from compatible types
| link:#nlohmann-basic_json-00-2constructor-0b[`basic&lowbar;json`]         [.small]#[constructor]#
| construct an array with count copies of given value
| link:#nlohmann-basic_json-00-2constructor-07[`basic&lowbar;json`]         [.small]#[constructor]#
| construct a JSON container given an iterator range
| link:#nlohmann-basic_json-00-2constructor-0cf[`basic&lowbar;json`]         [.small]#[constructor]#
| create a container (array or object) from an initializer list
| link:#nlohmann-basic_json-00-2destructor[`&#126;basic&lowbar;json`] [.small]#[destructor]#
| destructor
| link:#nlohmann-basic_json-00-operator_assign[`operator&equals;`] 
| copy assignment
| link:#nlohmann-basic_json-00-at-0a4[`at`] 
| access specified array element with bounds checking
| link:#nlohmann-basic_json-00-at-08[`at`] 
| access specified array element with bounds checking
| link:#nlohmann-basic_json-00-at-00[`at`] 
| access specified element via JSON Pointer
| link:#nlohmann-basic_json-00-at-0f[`at`] 
| access specified element via JSON Pointer
| link:#nlohmann-basic_json-00-at-0b[`at`] 
| access specified object element with bounds checking
| link:#nlohmann-basic_json-00-at-03[`at`] 
| access specified object element with bounds checking
| link:#nlohmann-basic_json-00-at-09[`at`] 
| 
| link:#nlohmann-basic_json-00-at-06[`at`] 
| 
| link:#nlohmann-basic_json-00-at-0a9[`at`] 
| access specified object element with bounds checking
| link:#nlohmann-basic_json-00-at-05[`at`] 
| access specified object element with bounds checking
| link:#nlohmann-basic_json-00-back-08e[`back`] 
| access the last element
| link:#nlohmann-basic_json-00-back-088[`back`] 
| access the last element
| link:#nlohmann-basic_json-00-begin-05[`begin`] 
| returns an iterator to the first element
| link:#nlohmann-basic_json-00-begin-04[`begin`] 
| returns an iterator to the first element
| link:#nlohmann-basic_json-00-cbegin[`cbegin`] 
| returns a const iterator to the first element
| link:#nlohmann-basic_json-00-cend[`cend`] 
| returns an iterator to one past the last element
| link:#nlohmann-basic_json-00-clear[`clear`] 
| clears the contents
| link:#nlohmann-basic_json-00-contains-01[`contains`] 
| check the existence of an element in a JSON object given a JSON pointer
| link:#nlohmann-basic_json-00-contains-06[`contains`] 
| check the existence of an element in a JSON object
| link:#nlohmann-basic_json-00-contains-0a[`contains`] 
| 
| link:#nlohmann-basic_json-00-contains-08[`contains`] 
| check the existence of an element in a JSON object
| link:#nlohmann-basic_json-00-count-0d[`count`] 
| returns the number of occurrences of a key in a JSON object
| link:#nlohmann-basic_json-00-count-0c[`count`] 
| returns the number of occurrences of a key in a JSON object
| link:#nlohmann-basic_json-00-crbegin[`crbegin`] 
| returns a const reverse iterator to the last element
| link:#nlohmann-basic_json-00-crend[`crend`] 
| returns a const reverse iterator to one before the first
| link:#nlohmann-basic_json-00-dump[`dump`] 
| serialization
| link:#nlohmann-basic_json-00-emplace[`emplace`] 
| add an object to an object if key does not exist
| link:#nlohmann-basic_json-00-emplace_back[`emplace&lowbar;back`] 
| add an object to an array
| link:#nlohmann-basic_json-00-empty[`empty`] 
| checks whether the container is empty&period;
| link:#nlohmann-basic_json-00-end-0a[`end`] 
| returns an iterator to one past the last element
| link:#nlohmann-basic_json-00-end-06[`end`] 
| returns an iterator to one past the last element
| link:#nlohmann-basic_json-00-erase-069[`erase`] 
| remove element from a JSON array given an index
| link:#nlohmann-basic_json-00-erase-067[`erase`] 
| remove element from a JSON object given a key
| link:#nlohmann-basic_json-00-erase-0f[`erase`] 
| remove element given an iterator
| link:#nlohmann-basic_json-00-erase-068[`erase`] 
| remove element from a JSON object given a key
| link:#nlohmann-basic_json-00-erase-02[`erase`] 
| remove elements given an iterator range
| link:#nlohmann-basic_json-00-find-0d[`find`] 
| find an element in a JSON object
| link:#nlohmann-basic_json-00-find-0ad[`find`] 
| find an element in a JSON object
| link:#nlohmann-basic_json-00-find-0f[`find`] 
| find an element in a JSON object
| link:#nlohmann-basic_json-00-find-0a0[`find`] 
| find an element in a JSON object
| link:#nlohmann-basic_json-00-flatten[`flatten`] 
| return flattened JSON value
| link:#nlohmann-basic_json-00-front-08[`front`] 
| access the first element
| link:#nlohmann-basic_json-00-front-07[`front`] 
| access the first element
| link:#nlohmann-basic_json-00-get-08[`get`] 
| get a pointer value (explicit)
| link:#nlohmann-basic_json-00-get-0a[`get`] 
| get a (pointer) value (explicit)
| link:#nlohmann-basic_json-00-get_binary-06[`get&lowbar;binary`] 
| get a binary value
| link:#nlohmann-basic_json-00-get_binary-01[`get&lowbar;binary`] 
| get a binary value
| link:#nlohmann-basic_json-00-get_ptr-0d[`get&lowbar;ptr`] 
| get a pointer value (implicit)
| link:#nlohmann-basic_json-00-get_ptr-0e[`get&lowbar;ptr`] 
| get a pointer value (implicit)
| link:#nlohmann-basic_json-00-get_ref-0e[`get&lowbar;ref`] 
| get a reference value (implicit)
| link:#nlohmann-basic_json-00-get_ref-05[`get&lowbar;ref`] 
| get a reference value (implicit)
| link:#nlohmann-basic_json-00-get_to-05[`get&lowbar;to`] 
| get a value (explicit)
| link:#nlohmann-basic_json-00-get_to-00[`get&lowbar;to`] 
| 
| link:#nlohmann-basic_json-00-get_to-07[`get&lowbar;to`] 
| 
| link:#nlohmann-basic_json-00-insert-00[`insert`] 
| inserts range of elements into object
| link:#nlohmann-basic_json-00-insert-0a[`insert`] 
| inserts elements from initializer list into array
| link:#nlohmann-basic_json-00-insert-0d6[`insert`] 
| inserts element into array
| link:#nlohmann-basic_json-00-insert-03[`insert`] 
| inserts element into array
| link:#nlohmann-basic_json-00-insert-0dc[`insert`] 
| inserts range of elements into array
| link:#nlohmann-basic_json-00-insert-07[`insert`] 
| inserts copies of element into array
| link:#nlohmann-basic_json-00-insert_iterator[`insert&lowbar;iterator`] 
| Helper for insertion of an iterator
| link:#nlohmann-basic_json-00-is_array[`is&lowbar;array`] 
| return whether value is an array
| link:#nlohmann-basic_json-00-is_binary[`is&lowbar;binary`] 
| return whether value is a binary array
| link:#nlohmann-basic_json-00-is_boolean[`is&lowbar;boolean`] 
| return whether value is a boolean
| link:#nlohmann-basic_json-00-is_discarded[`is&lowbar;discarded`] 
| return whether value is discarded
| link:#nlohmann-basic_json-00-is_null[`is&lowbar;null`] 
| return whether value is null
| link:#nlohmann-basic_json-00-is_number[`is&lowbar;number`] 
| return whether value is a number
| link:#nlohmann-basic_json-00-is_number_float[`is&lowbar;number&lowbar;float`] 
| return whether value is a floating&hyphen;point number
| link:#nlohmann-basic_json-00-is_number_integer[`is&lowbar;number&lowbar;integer`] 
| return whether value is an integer number
| link:#nlohmann-basic_json-00-is_number_unsigned[`is&lowbar;number&lowbar;unsigned`] 
| return whether value is an unsigned integer number
| link:#nlohmann-basic_json-00-is_object[`is&lowbar;object`] 
| return whether value is an object
| link:#nlohmann-basic_json-00-is_primitive[`is&lowbar;primitive`] 
| return whether type is primitive
| link:#nlohmann-basic_json-00-is_string[`is&lowbar;string`] 
| return whether value is a string
| link:#nlohmann-basic_json-00-is_structured[`is&lowbar;structured`] 
| return whether type is structured
| link:#nlohmann-basic_json-00-items-0b[`items`] 
| helper to access iterator member functions in range&hyphen;based for
| link:#nlohmann-basic_json-00-items-0d[`items`] 
| helper to access iterator member functions in range&hyphen;based for
| link:#nlohmann-basic_json-00-max_size[`max&lowbar;size`] 
| returns the maximum possible number of elements
| link:#nlohmann-basic_json-00-merge_patch[`merge&lowbar;patch`] 
| applies a JSON Merge Patch
| link:#nlohmann-basic_json-00-operator_plus_eq-0c[`operator&plus;&equals;`] 
| add an object to an object
| link:#nlohmann-basic_json-00-operator_plus_eq-08[`operator&plus;&equals;`] 
| add an object to an array
| link:#nlohmann-basic_json-00-operator_plus_eq-03[`operator&plus;&equals;`] 
| add an object to an object
| link:#nlohmann-basic_json-00-operator_plus_eq-0b[`operator&plus;&equals;`] 
| add an object to an array
| link:#nlohmann-basic_json-00-operator_subs-08[`operator&lsqb;&rsqb;`] 
| access specified object element
| link:#nlohmann-basic_json-00-operator_subs-0102[`operator&lsqb;&rsqb;`] 
| access specified array element
| link:#nlohmann-basic_json-00-operator_subs-02[`operator&lsqb;&rsqb;`] 
| access specified array element
| link:#nlohmann-basic_json-00-operator_subs-0b[`operator&lsqb;&rsqb;`] 
| access specified element via JSON Pointer
| link:#nlohmann-basic_json-00-operator_subs-03[`operator&lsqb;&rsqb;`] 
| access specified element via JSON Pointer
| link:#nlohmann-basic_json-00-operator_subs-07[`operator&lsqb;&rsqb;`] 
| access specified object element
| link:#nlohmann-basic_json-00-operator_subs-05[`operator&lsqb;&rsqb;`] 
| Subscript operator
| link:#nlohmann-basic_json-00-operator_subs-00[`operator&lsqb;&rsqb;`] 
| Subscript operator
| link:#nlohmann-basic_json-00-operator_subs-0c[`operator&lsqb;&rsqb;`] 
| access specified object element
| link:#nlohmann-basic_json-00-operator_subs-010a[`operator&lsqb;&rsqb;`] 
| access specified object element
| link:#nlohmann-basic_json-00-operator_subs-09[`operator&lsqb;&rsqb;`] 
| Subscript operator
| link:#nlohmann-basic_json-00-operator_subs-0e[`operator&lsqb;&rsqb;`] 
| Subscript operator
| link:#nlohmann-basic_json-00-patch[`patch`] 
| applies a JSON patch to a copy of the current object
| link:#nlohmann-basic_json-00-patch_inplace[`patch&lowbar;inplace`] 
| applies a JSON patch in&hyphen;place without copying the object
| link:#nlohmann-basic_json-00-push_back-04[`push&lowbar;back`] 
| add an object to an object
| link:#nlohmann-basic_json-00-push_back-0d[`push&lowbar;back`] 
| add an object to an array
| link:#nlohmann-basic_json-00-push_back-00[`push&lowbar;back`] 
| add an object to an object
| link:#nlohmann-basic_json-00-push_back-01[`push&lowbar;back`] 
| add an object to an array
| link:#nlohmann-basic_json-00-rbegin-0e[`rbegin`] 
| returns an iterator to the reverse&hyphen;beginning
| link:#nlohmann-basic_json-00-rbegin-00[`rbegin`] 
| returns an iterator to the reverse&hyphen;beginning
| link:#nlohmann-basic_json-00-rend-02[`rend`] 
| returns an iterator to the reverse&hyphen;end
| link:#nlohmann-basic_json-00-rend-0b[`rend`] 
| returns an iterator to the reverse&hyphen;end
| link:#nlohmann-basic_json-00-size[`size`] 
| returns the number of elements
| link:#nlohmann-basic_json-00-swap-0b[`swap`] 
| exchanges the values
| link:#nlohmann-basic_json-00-swap-04e[`swap`] 
| exchanges the values
| link:#nlohmann-basic_json-00-swap-0e[`swap`] 
| exchanges the values
| link:#nlohmann-basic_json-00-swap-09[`swap`] 
| exchanges the values
| link:#nlohmann-basic_json-00-swap-048[`swap`] 
| exchanges the values
| link:#nlohmann-basic_json-00-swap-03[`swap`] 
| exchanges the values
| link:#nlohmann-basic_json-00-type[`type`] 
| return the type of the JSON value (explicit)
| link:#nlohmann-basic_json-00-type_name[`type&lowbar;name`] 
| return the type as string
| link:#nlohmann-basic_json-00-unflatten[`unflatten`] 
| unflatten a previously flattened JSON value
| link:#nlohmann-basic_json-00-update-0c[`update`] 
| updates a JSON object from another object, overwriting existing keys
| link:#nlohmann-basic_json-00-update-06[`update`] 
| updates a JSON object from another object, overwriting existing keys
| link:#nlohmann-basic_json-00-value-07[`value`] 
| access specified object element via JSON Pointer with default value
| link:#nlohmann-basic_json-00-value-0eb[`value`] 
| access specified object element with default value
| link:#nlohmann-basic_json-00-value-0b[`value`] 
| access specified object element via JSON Pointer with default value
| link:#nlohmann-basic_json-00-value-0ed[`value`] 
| access specified object element with default value
| link:#nlohmann-basic_json-00-value-09[`value`] 
| 
| link:#nlohmann-basic_json-00-value-01[`value`] 
| access specified object element with default value
| link:#nlohmann-basic_json-00-value-08[`value`] 
| 
| link:#nlohmann-basic_json-00-value-0f[`value`] 
| access specified object element via JSON Pointer with default value
| link:#nlohmann-basic_json-00-2conversion-0a[`operator ValueType`] 
| get a value (implicit)
| link:#nlohmann-basic_json-00-2conversion-05[`operator value&lowbar;t`] 
| return the type of the JSON value (implicit)
| link:#nlohmann-basic_json-00-operator_eq-08[`operator&equals;&equals;`] 
| comparison&colon; equal
| link:#nlohmann-basic_json-00-operator_eq-05[`operator&equals;&equals;`] 
| comparison&colon; equal
| link:#nlohmann-basic_json-00-operator_not_eq[`operator!&equals;`] 
| comparison&colon; not equal
| link:#nlohmann-basic_json-00-operator_3way-0c[`operator&lt;&equals;&gt;`] 
| comparison&colon; 3&hyphen;way
| link:#nlohmann-basic_json-00-operator_3way-04[`operator&lt;&equals;&gt;`] 
| comparison&colon; 3&hyphen;way
|===

== Static Member Functions

[cols=2]
|===
| Name
| Description
| link:#nlohmann-basic_json-00-accept-02[`accept`] 
| 
| link:#nlohmann-basic_json-00-accept-0e[`accept`] 
| check if the input is valid JSON
| link:#nlohmann-basic_json-00-accept-04[`accept`] 
| check if the input is valid JSON
| link:#nlohmann-basic_json-00-array[`array`] 
| explicitly create an array from an initializer list
| link:#nlohmann-basic_json-00-binary-08[`binary`] 
| explicitly create a binary array (without subtype)
| link:#nlohmann-basic_json-00-binary-0f[`binary`] 
| explicitly create a binary array
| link:#nlohmann-basic_json-00-binary-04[`binary`] 
| explicitly create a binary array (with subtype)
| link:#nlohmann-basic_json-00-binary-0c[`binary`] 
| explicitly create a binary array (with subtype)
| link:#nlohmann-basic_json-00-diff[`diff`] 
| creates a diff as a JSON patch
| link:#nlohmann-basic_json-00-from_bjdata-02[`from&lowbar;bjdata`] 
| create a JSON value from an input in BJData format
| link:#nlohmann-basic_json-00-from_bjdata-0f[`from&lowbar;bjdata`] 
| create a JSON value from an input in BJData format
| link:#nlohmann-basic_json-00-from_bson-04[`from&lowbar;bson`] 
| 
| link:#nlohmann-basic_json-00-from_bson-09[`from&lowbar;bson`] 
| create a JSON value from an input in BSON format
| link:#nlohmann-basic_json-00-from_bson-05[`from&lowbar;bson`] 
| create a JSON value from an input in BSON format
| link:#nlohmann-basic_json-00-from_bson-0e[`from&lowbar;bson`] 
| 
| link:#nlohmann-basic_json-00-from_cbor-01[`from&lowbar;cbor`] 
| 
| link:#nlohmann-basic_json-00-from_cbor-03[`from&lowbar;cbor`] 
| create a JSON value from an input in CBOR format
| link:#nlohmann-basic_json-00-from_cbor-0d[`from&lowbar;cbor`] 
| create a JSON value from an input in CBOR format
| link:#nlohmann-basic_json-00-from_cbor-09[`from&lowbar;cbor`] 
| 
| link:#nlohmann-basic_json-00-from_msgpack-04[`from&lowbar;msgpack`] 
| 
| link:#nlohmann-basic_json-00-from_msgpack-0b[`from&lowbar;msgpack`] 
| create a JSON value from an input in MessagePack format
| link:#nlohmann-basic_json-00-from_msgpack-00[`from&lowbar;msgpack`] 
| create a JSON value from an input in MessagePack format
| link:#nlohmann-basic_json-00-from_msgpack-06[`from&lowbar;msgpack`] 
| 
| link:#nlohmann-basic_json-00-from_ubjson-09[`from&lowbar;ubjson`] 
| 
| link:#nlohmann-basic_json-00-from_ubjson-0b[`from&lowbar;ubjson`] 
| create a JSON value from an input in UBJSON format
| link:#nlohmann-basic_json-00-from_ubjson-04[`from&lowbar;ubjson`] 
| create a JSON value from an input in UBJSON format
| link:#nlohmann-basic_json-00-from_ubjson-0d[`from&lowbar;ubjson`] 
| 
| link:#nlohmann-basic_json-00-get_allocator[`get&lowbar;allocator`] 
| returns the allocator associated with the container
| link:#nlohmann-basic_json-00-iterator_wrapper-0a[`iterator&lowbar;wrapper`] 
| wrapper to access iterator member functions in range&hyphen;based for
| link:#nlohmann-basic_json-00-iterator_wrapper-03[`iterator&lowbar;wrapper`] 
| wrapper to access iterator member functions in range&hyphen;based for
| link:#nlohmann-basic_json-00-meta[`meta`] 
| returns version information on the library
| link:#nlohmann-basic_json-00-object[`object`] 
| explicitly create an object from an initializer list
| link:#nlohmann-basic_json-00-parse-01[`parse`] 
| 
| link:#nlohmann-basic_json-00-parse-0f[`parse`] 
| deserialize from a compatible input
| link:#nlohmann-basic_json-00-parse-09[`parse`] 
| deserialize from a pair of character iterators
| link:#nlohmann-basic_json-00-sax_parse-01[`sax&lowbar;parse`] 
| generate SAX events
| link:#nlohmann-basic_json-00-sax_parse-0b[`sax&lowbar;parse`] 
| generate SAX events
| link:#nlohmann-basic_json-00-sax_parse-04[`sax&lowbar;parse`] 
| generate SAX events
| link:#nlohmann-basic_json-00-to_bjdata-01[`to&lowbar;bjdata`] 
| create a BJData serialization of a given JSON value
| link:#nlohmann-basic_json-00-to_bjdata-0a[`to&lowbar;bjdata`] 
| create a BJData serialization of a given JSON value
| link:#nlohmann-basic_json-00-to_bjdata-0c[`to&lowbar;bjdata`] 
| create a BJData serialization of a given JSON value
| link:#nlohmann-basic_json-00-to_bson-01[`to&lowbar;bson`] 
| create a BSON serialization of a given JSON value
| link:#nlohmann-basic_json-00-to_bson-0b[`to&lowbar;bson`] 
| create a BSON serialization of a given JSON value
| link:#nlohmann-basic_json-00-to_bson-0f[`to&lowbar;bson`] 
| create a BSON serialization of a given JSON value
| link:#nlohmann-basic_json-00-to_cbor-05f[`to&lowbar;cbor`] 
| create a CBOR serialization of a given JSON value
| link:#nlohmann-basic_json-00-to_cbor-00[`to&lowbar;cbor`] 
| create a CBOR serialization of a given JSON value
| link:#nlohmann-basic_json-00-to_cbor-05c[`to&lowbar;cbor`] 
| create a CBOR serialization of a given JSON value
| link:#nlohmann-basic_json-00-to_msgpack-04[`to&lowbar;msgpack`] 
| create a MessagePack serialization of a given JSON value
| link:#nlohmann-basic_json-00-to_msgpack-03[`to&lowbar;msgpack`] 
| create a MessagePack serialization of a given JSON value
| link:#nlohmann-basic_json-00-to_msgpack-01[`to&lowbar;msgpack`] 
| create a MessagePack serialization of a given JSON value
| link:#nlohmann-basic_json-00-to_ubjson-02[`to&lowbar;ubjson`] 
| create a UBJSON serialization of a given JSON value
| link:#nlohmann-basic_json-00-to_ubjson-06[`to&lowbar;ubjson`] 
| create a UBJSON serialization of a given JSON value
| link:#nlohmann-basic_json-00-to_ubjson-0f[`to&lowbar;ubjson`] 
| create a UBJSON serialization of a given JSON value
|===

== Friends

[cols=2]
|===
| Name
| Description
| `link:#nlohmann-operator_rshift-0e[nlohmann::operator&gt;&gt;]`
| deserialize from stream
| `link:#nlohmann-operator_lshift-07[nlohmann::operator&lt;&lt;]`
| deserialize from stream
| `link:#nlohmann-operator_rshift-0d[nlohmann::operator&gt;&gt;]`
| serialize to stream
| `link:#nlohmann-operator_lshift-03[nlohmann::operator&lt;&lt;]`
| serialize to stream
| `link:#nlohmann-swap-03[nlohmann::swap]`
| exchanges the values
| `nlohmann::detail::exception`
| general exception of the `basic&lowbar;json` class
| `nlohmann::detail::serializer`
| 
| `link:#nlohmann-json_pointer-0b[nlohmann::json&lowbar;pointer]`
| 
|===

== Non-Member Functions

[cols=2]
|===
| Name
| Description
| link:#nlohmann-operator_lshift-053[`operator&lt;&lt;`]
| deserialize from stream
| link:#nlohmann-operator_rshift-08[`operator&gt;&gt;`]
| serialize to stream
| link:#nlohmann-to_string[`to&lowbar;string`]
| user&hyphen;defined to&lowbar;string function for JSON values
|===

== Description

a class to store JSON values

[,cpp]
----
@invariant The member variables @a m_value and @a m_type have the following
relationship:
- If `m_type == value_t::object`, then `m_value.object != nullptr`.
- If `m_type == value_t::array`, then `m_value.array != nullptr`.
- If `m_type == value_t::string`, then `m_value.string != nullptr`.
The invariants are checked by member function assert_invariant().

@note ObjectType trick from https://stackoverflow.com/a/9860911
----
the allocator type

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using allocator&lowbar;type = AllocatorType&lt;basic&lowbar;json&gt;;
----

a type for an array

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using array&lowbar;t = ArrayType&lt;basic&lowbar;json, AllocatorType&lt;basic&lowbar;json&gt;&gt;;
----

a type for a packed binary type

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using binary&lowbar;t = link:#nlohmann-byte_container_with_subtype-04[nlohmann::byte&lowbar;container&lowbar;with&lowbar;subtype&lt;BinaryType&gt;];
----

how to encode BJData

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using bjdata&lowbar;version&lowbar;t = detail::bjdata&lowbar;version&lowbar;t;
----

a type for a boolean

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using boolean&lowbar;t = BooleanType;
----

how to treat CBOR tags

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using cbor&lowbar;tag&lowbar;handler&lowbar;t = detail::cbor&lowbar;tag&lowbar;handler&lowbar;t;
----

a const iterator for a basic&lowbar;json container

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using const&lowbar;iterator = link:#nlohmann-basic_json-00[iter&lowbar;impl&lt;basic&lowbar;json const&gt;];
----

the type of an element const pointer

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using const&lowbar;pointer = std::allocator&lowbar;traits&lt;allocator&lowbar;type&gt;::const&lowbar;pointer;
----

the type of an element const reference

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using const&lowbar;reference = link:#nlohmann-basic_json-00-value_type[value&lowbar;type] const&;
----

a const reverse iterator for a basic&lowbar;json container

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using const&lowbar;reverse&lowbar;iterator = link:#nlohmann-basic_json-00[json&lowbar;reverse&lowbar;iterator&lt;basic&lowbar;json::const&lowbar;iterator&gt;];
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using default&lowbar;object&lowbar;comparator&lowbar;t = std::less;
----

a type to represent differences between iterators

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using difference&lowbar;type = std::ptrdiff&lowbar;t;
----

how to treat decoding errors

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using error&lowbar;handler&lowbar;t = detail::error&lowbar;handler&lowbar;t;
----

Classes to implement user&hyphen;defined exceptions&period; @&lcub;

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using exception = detail::exception;
----

helper type for initializer lists of basic&lowbar;json values

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using initializer&lowbar;list&lowbar;t = std::initializer&lowbar;list&lt;detail::json&lowbar;ref&lt;basic&lowbar;json&gt;&gt;;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using input&lowbar;format&lowbar;t = detail::input&lowbar;format&lowbar;t;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using invalid&lowbar;iterator = detail::invalid&lowbar;iterator;
----

an iterator for a basic&lowbar;json container

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using iterator = link:#nlohmann-basic_json-00[iter&lowbar;impl&lt;basic&lowbar;json&gt;];
----

JSON Pointer, see link:#nlohmann-json_pointer-0b[`nlohmann&colon;&colon;json&lowbar;pointer`]

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using json&lowbar;pointer = link:#nlohmann-json_pointer-0a[nlohmann::json&lowbar;pointer&lt;StringType&gt;];
----

SAX interface type, see `nlohmann&colon;&colon;json&lowbar;sax`

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using json&lowbar;sax&lowbar;t = json&lowbar;sax&lt;basic&lowbar;json&gt;;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename T,
    typename SFINAE&gt;
using json&lowbar;serializer = JSONSerializer&lt;T, SFINAE&gt;;
----

a type for a number (floating&hyphen;point)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using number&lowbar;float&lowbar;t = NumberFloatType;
----

a type for a number (integer)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using number&lowbar;integer&lowbar;t = NumberIntegerType;
----

a type for a number (unsigned)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using number&lowbar;unsigned&lowbar;t = NumberUnsignedType;
----

object key comparator type

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using object&lowbar;comparator&lowbar;t = detail::actual&lowbar;object&lowbar;comparator&lowbar;t&lt;basic&lowbar;json&gt;;
----

a type for an object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using object&lowbar;t = ObjectType&lt;StringType, basic&lowbar;json, default&lowbar;object&lowbar;comparator&lowbar;t, AllocatorType&lt;std::pair&lt;StringType const, basic&lowbar;json&gt;&gt;&gt;;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using other&lowbar;error = detail::other&lowbar;error;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using out&lowbar;of&lowbar;range = detail::out&lowbar;of&lowbar;range;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using parse&lowbar;error = detail::parse&lowbar;error;
----

parser event types

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using parse&lowbar;event&lowbar;t = detail::parse&lowbar;event&lowbar;t;
----

per&hyphen;element parser callback type

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using parser&lowbar;callback&lowbar;t = detail::parser&lowbar;callback&lowbar;t&lt;basic&lowbar;json&gt;;
----

the type of an element pointer

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using pointer = std::allocator&lowbar;traits&lt;allocator&lowbar;type&gt;::pointer;
----

the type of an element reference

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using reference = link:#nlohmann-basic_json-00-value_type[value&lowbar;type]&;
----

a reverse iterator for a basic&lowbar;json container

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using reverse&lowbar;iterator = link:#nlohmann-basic_json-00[json&lowbar;reverse&lowbar;iterator&lt;basic&lowbar;json::iterator&gt;];
----

a type to represent container sizes

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using size&lowbar;type = std::size&lowbar;t;
----

a type for a string

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using string&lowbar;t = StringType;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using type&lowbar;error = detail::type&lowbar;error;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using value&lowbar;t = detail::value&lowbar;t;
----

the type of elements in a basic&lowbar;json container

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using value&lowbar;type = link:#nlohmann-basic_json-00[basic&lowbar;json];
----

copy constructor

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
basic&lowbar;json(link:#nlohmann-basic_json-00[basic&lowbar;json] const& other);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *other*
| The object to copy construct from
|===

move constructor

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
basic&lowbar;json(link:#nlohmann-basic_json-00[basic&lowbar;json]&& other) noexcept;
----

== Parameters

[cols=2]
|===
| Name
| Description
| *other*
| The object to move construct from
|===

create a null object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
basic&lowbar;json(std::nullptr&lowbar;t value = nullptr) noexcept;
----

== Parameters

[cols=2]
|===
| Name
| Description
| *value*
| The object to construct from
|===

create an empty value with a given type

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
basic&lowbar;json(link:#nlohmann-basic_json-00-value_t[value&lowbar;t] const v);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *v*
| The object to construct from
|===

create a JSON value from an existing one

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename BasicJsonType&gt;
requires detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;BasicJsonType&gt;&colon;&colon;value&amp;&amp; !std&colon;&colon;is&lowbar;same&lt;basic&lowbar;json, BasicJsonType&gt;&colon;&colon;value
basic&lowbar;json(BasicJsonType const& val);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *val*
| The object to copy construct from
|===

&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;&sol;

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename JsonRef&gt;
requires detail&colon;&colon;conjunction&lt;detail&colon;&colon;is&lowbar;json&lowbar;ref&lt;JsonRef&gt;,
                                 std&colon;&colon;is&lowbar;same&lt;typename JsonRef&colon;&colon;value&lowbar;type, basic&lowbar;json&gt;&gt;&colon;&colon;value
basic&lowbar;json(JsonRef const& ref);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *ref*
| The object to copy construct from
|===

create a JSON value from compatible types

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename CompatibleType,
    typename U = detail::uncvref&lowbar;t&lt;CompatibleType&gt;&gt;
requires !detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;U&gt;&colon;&colon;value &amp;&amp; detail&colon;&colon;is&lowbar;compatible&lowbar;type&lt;basic&lowbar;json&lowbar;t, U&gt;&colon;&colon;value
basic&lowbar;json(CompatibleType&& val) noexcept(noexcept(JSONSerializer&lt;U, void&gt;&colon;&colon;to&lowbar;json(std&colon;&colon;declval&lt;basic&lowbar;json&lowbar;t &amp;&gt;(), std&colon;&colon;forward&lt;CompatibleType&gt;(val))));
----

== Parameters

[cols=2]
|===
| Name
| Description
| *val*
| The object to move construct from
|===

construct an array with count copies of given value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
basic&lowbar;json(
    link:#nlohmann-basic_json-00-size_type[size&lowbar;type] cnt,
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& val);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *cnt*
| The object to construct from
| *val*
| a class to store JSON values
|===

construct a JSON container given an iterator range

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class InputIT&gt;
requires std&colon;&colon;is&lowbar;same&lt;InputIT, typename basic&lowbar;json&lowbar;t&colon;&colon;iterator&gt;&colon;&colon;value &verbar;&verbar;
                   std&colon;&colon;is&lowbar;same&lt;InputIT, typename basic&lowbar;json&lowbar;t&colon;&colon;const&lowbar;iterator&gt;&colon;&colon;value
basic&lowbar;json(
    InputIT first,
    InputIT last);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *first*
| The object to construct from
|===

create a container (array or object) from an initializer list

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
basic&lowbar;json(
    link:#nlohmann-basic_json-00-initializer_list_t[initializer&lowbar;list&lowbar;t] init,
    bool type&lowbar;deduction = true,
    link:#nlohmann-basic_json-00-value_t[value&lowbar;t] manual&lowbar;type = value&lowbar;t&colon;&colon;array);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *init*
| The object to construct from
|===

destructor

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&#126;basic&lowbar;json() noexcept;
----

copy assignment

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00[basic&lowbar;json]&
operator&equals;(link:#nlohmann-basic_json-00[basic&lowbar;json] other) noexcept(std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;constructible&lt;value&lowbar;t&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;assignable&lt;value&lowbar;t&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;constructible&lt;json&lowbar;value&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;assignable&lt;json&lowbar;value&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;assignable&lt;json&lowbar;base&lowbar;class&lowbar;t&gt;&colon;&colon;value);
----

== Return Value

Reference to the current object

== Parameters

[cols=2]
|===
| Name
| Description
| *other*
| The object to assign from
|===

access specified array element with bounds checking

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-reference[reference]
at(link:#nlohmann-basic_json-00-size_type[size&lowbar;type] idx);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *idx*
| a type to represent container sizes
|===

access specified array element with bounds checking

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-const_reference[const&lowbar;reference]
at(link:#nlohmann-basic_json-00-size_type[size&lowbar;type] idx) const;
----

== Return Value

the type of an element const reference

== Parameters

[cols=2]
|===
| Name
| Description
| *idx*
| a type to represent container sizes
|===

access specified element via JSON Pointer

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-reference[reference]
at(link:#nlohmann-basic_json-00-json_pointer[json&lowbar;pointer] const& ptr);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *ptr*
| JSON Pointer, see link:#nlohmann-json_pointer-0b[`nlohmann&colon;&colon;json&lowbar;pointer`]
|===

access specified element via JSON Pointer

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-const_reference[const&lowbar;reference]
at(link:#nlohmann-basic_json-00-json_pointer[json&lowbar;pointer] const& ptr) const;
----

== Return Value

the type of an element const reference

== Parameters

[cols=2]
|===
| Name
| Description
| *ptr*
| JSON Pointer, see link:#nlohmann-json_pointer-0b[`nlohmann&colon;&colon;json&lowbar;pointer`]
|===

access specified object element with bounds checking

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-reference[reference]
at(object&lowbar;t::key&lowbar;type const& key);
----

== Return Value

the type of an element reference

access specified object element with bounds checking

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-const_reference[const&lowbar;reference]
at(object&lowbar;t::key&lowbar;type const& key) const;
----

== Return Value

the type of an element const reference

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename BasicJsonType&gt;
requires detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;BasicJsonType&gt;&colon;&colon;value
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
link:#nlohmann-basic_json-00-reference[reference]
at(link:#nlohmann-json_pointer-0a[nlohmann::json&lowbar;pointer&lt;BasicJsonType&gt;] const& ptr);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename BasicJsonType&gt;
requires detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;BasicJsonType&gt;&colon;&colon;value
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
link:#nlohmann-basic_json-00-const_reference[const&lowbar;reference]
at(link:#nlohmann-json_pointer-0a[nlohmann::json&lowbar;pointer&lt;BasicJsonType&gt;] const& ptr) const;
----

access specified object element with bounds checking

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;basic&lowbar;json&lowbar;key&lowbar;type&lt;basic&lowbar;json&lowbar;t, KeyType&gt;&colon;&colon;value
link:#nlohmann-basic_json-00-reference[reference]
at(KeyType&& key);
----

== Return Value

the type of an element reference

access specified object element with bounds checking

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;basic&lowbar;json&lowbar;key&lowbar;type&lt;basic&lowbar;json&lowbar;t, KeyType&gt;&colon;&colon;value
link:#nlohmann-basic_json-00-const_reference[const&lowbar;reference]
at(KeyType&& key) const;
----

== Return Value

the type of an element const reference

access the last element

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-reference[reference]
back();
----

== Return Value

the type of an element reference

access the last element

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-const_reference[const&lowbar;reference]
back() const;
----

== Return Value

the type of an element const reference

returns an iterator to the first element

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-iterator[iterator]
begin() noexcept;
----

== Return Value

an iterator for a basic&lowbar;json container

returns an iterator to the first element

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-const_iterator[const&lowbar;iterator]
begin() const noexcept;
----

== Return Value

a const iterator for a basic&lowbar;json container

returns a const iterator to the first element

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-const_iterator[const&lowbar;iterator]
cbegin() const noexcept;
----

== Return Value

a const iterator for a basic&lowbar;json container

returns an iterator to one past the last element

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-const_iterator[const&lowbar;iterator]
cend() const noexcept;
----

== Return Value

a const iterator for a basic&lowbar;json container

clears the contents

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
clear() noexcept;
----

check the existence of an element in a JSON object given a JSON pointer

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
bool
contains(link:#nlohmann-basic_json-00-json_pointer[json&lowbar;pointer] const& ptr) const;
----

== Parameters

[cols=2]
|===
| Name
| Description
| *ptr*
| JSON Pointer, see link:#nlohmann-json_pointer-0b[`nlohmann&colon;&colon;json&lowbar;pointer`]
|===

check the existence of an element in a JSON object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
bool
contains(object&lowbar;t::key&lowbar;type const& key) const;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename BasicJsonType&gt;
requires detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;BasicJsonType&gt;&colon;&colon;value
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
bool
contains(link:#nlohmann-json_pointer-0a[nlohmann::json&lowbar;pointer&lt;BasicJsonType&gt;] const& ptr) const;
----

check the existence of an element in a JSON object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;basic&lowbar;json&lowbar;key&lowbar;type&lt;basic&lowbar;json&lowbar;t, KeyType&gt;&colon;&colon;value
bool
contains(KeyType&& key) const;
----

returns the number of occurrences of a key in a JSON object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-size_type[size&lowbar;type]
count(object&lowbar;t::key&lowbar;type const& key) const;
----

== Return Value

a type to represent container sizes

returns the number of occurrences of a key in a JSON object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;basic&lowbar;json&lowbar;key&lowbar;type&lt;basic&lowbar;json&lowbar;t, KeyType&gt;&colon;&colon;value
link:#nlohmann-basic_json-00-size_type[size&lowbar;type]
count(KeyType&& key) const;
----

== Return Value

a type to represent container sizes

returns a const reverse iterator to the last element

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-const_reverse_iterator[const&lowbar;reverse&lowbar;iterator]
crbegin() const noexcept;
----

== Return Value

a const reverse iterator for a basic&lowbar;json container

returns a const reverse iterator to one before the first

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-const_reverse_iterator[const&lowbar;reverse&lowbar;iterator]
crend() const noexcept;
----

== Return Value

a const reverse iterator for a basic&lowbar;json container

serialization

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-string_t[string&lowbar;t]
dump(
    int const indent = &hyphen;1,
    char const indent&lowbar;char = &apos; &apos;,
    bool const ensure&lowbar;ascii = false,
    link:#nlohmann-basic_json-00-error_handler_t[error&lowbar;handler&lowbar;t] const error&lowbar;handler = error&lowbar;handler&lowbar;t&colon;&colon;strict) const;
----

== Return Value

a type for a string

== Parameters

[cols=2]
|===
| Name
| Description
| *error&lowbar;handler*
| how to treat decoding errors
|===

add an object to an object if key does not exist

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class&period;&period;&period; Args&gt;
std::pair&lt;iterator, bool&gt;
emplace(Args&period;&period;&period;&&&period;&period;&period; args);
----

add an object to an array

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class&period;&period;&period; Args&gt;
link:#nlohmann-basic_json-00-reference[reference]
emplace&lowbar;back(Args&period;&period;&period;&&&period;&period;&period; args);
----

== Return Value

the type of an element reference

checks whether the container is empty&period;

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
bool
empty() const noexcept;
----

returns an iterator to one past the last element

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-iterator[iterator]
end() noexcept;
----

== Return Value

an iterator for a basic&lowbar;json container

returns an iterator to one past the last element

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-const_iterator[const&lowbar;iterator]
end() const noexcept;
----

== Return Value

a const iterator for a basic&lowbar;json container

remove element from a JSON array given an index

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
erase(link:#nlohmann-basic_json-00-size_type[size&lowbar;type] const idx);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *idx*
| a type to represent container sizes
|===

remove element from a JSON object given a key

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-size_type[size&lowbar;type]
erase(object&lowbar;t::key&lowbar;type const& key);
----

== Return Value

a type to represent container sizes

remove element given an iterator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class IteratorType&gt;
requires std&colon;&colon;is&lowbar;same&lt;IteratorType, typename basic&lowbar;json&lowbar;t&colon;&colon;iterator&gt;&colon;&colon;value &verbar;&verbar;
                   std&colon;&colon;is&lowbar;same&lt;IteratorType, typename basic&lowbar;json&lowbar;t&colon;&colon;const&lowbar;iterator&gt;&colon;&colon;value
IteratorType
erase(IteratorType pos);
----

remove element from a JSON object given a key

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;basic&lowbar;json&lowbar;key&lowbar;type&lt;basic&lowbar;json&lowbar;t, KeyType&gt;&colon;&colon;value
link:#nlohmann-basic_json-00-size_type[size&lowbar;type]
erase(KeyType&& key);
----

== Return Value

a type to represent container sizes

remove elements given an iterator range

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class IteratorType&gt;
requires std&colon;&colon;is&lowbar;same&lt;IteratorType, typename basic&lowbar;json&lowbar;t&colon;&colon;iterator&gt;&colon;&colon;value &verbar;&verbar;
                   std&colon;&colon;is&lowbar;same&lt;IteratorType, typename basic&lowbar;json&lowbar;t&colon;&colon;const&lowbar;iterator&gt;&colon;&colon;value
IteratorType
erase(
    IteratorType first,
    IteratorType last);
----

find an element in a JSON object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-iterator[iterator]
find(object&lowbar;t::key&lowbar;type const& key);
----

== Return Value

an iterator for a basic&lowbar;json container

find an element in a JSON object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-const_iterator[const&lowbar;iterator]
find(object&lowbar;t::key&lowbar;type const& key) const;
----

== Return Value

a const iterator for a basic&lowbar;json container

find an element in a JSON object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;basic&lowbar;json&lowbar;key&lowbar;type&lt;basic&lowbar;json&lowbar;t, KeyType&gt;&colon;&colon;value
link:#nlohmann-basic_json-00-iterator[iterator]
find(KeyType&& key);
----

== Return Value

an iterator for a basic&lowbar;json container

find an element in a JSON object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;basic&lowbar;json&lowbar;key&lowbar;type&lt;basic&lowbar;json&lowbar;t, KeyType&gt;&colon;&colon;value
link:#nlohmann-basic_json-00-const_iterator[const&lowbar;iterator]
find(KeyType&& key) const;
----

== Return Value

a const iterator for a basic&lowbar;json container

return flattened JSON value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00[basic&lowbar;json]
flatten() const;
----

== Return Value

a class to store JSON values

access the first element

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-reference[reference]
front();
----

== Return Value

the type of an element reference

access the first element

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-const_reference[const&lowbar;reference]
front() const;
----

== Return Value

the type of an element const reference

get a pointer value (explicit)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename PointerType&gt;
requires std&colon;&colon;is&lowbar;pointer&lt;PointerType&gt;&colon;&colon;value
decltype(std&colon;&colon;declval&lt;basic&lowbar;json&lowbar;t&amp;&gt;()&period;template get&lowbar;ptr&lt;PointerType&gt;())
get() noexcept;
----

== Description

Explicit pointer access to the internally stored JSON value&period; No copies are made&period;

[WARNING]
====
The pointer becomes invalid if the underlying JSON object changes&period;

====

Constant&period;

&lcub;The example below shows how pointers to internal values of a JSON value can be requested&period; Note that no type conversions are made and a `nullptr` is returned if the value and the requested pointer type does not match&period;,get&lowbar;&lowbar;PointerType&rcub;

== Return Value

pointer to the internally stored JSON value if the requested pointer type _PointerType_ fits to the JSON value&semi; `nullptr` otherwise

== Template Parameters

[cols=2]
|===
| Name
| Description
| *PointerType*
| pointer type&semi; must be a pointer to link:#nlohmann-basic_json-00-array_t[`array&lowbar;t`], link:#nlohmann-basic_json-00-object_t[`object&lowbar;t`], link:#nlohmann-basic_json-00-string_t[`string&lowbar;t`], link:#nlohmann-basic_json-00-boolean_t[`boolean&lowbar;t`], link:#nlohmann-basic_json-00-number_integer_t[`number&lowbar;integer&lowbar;t`], link:#nlohmann-basic_json-00-number_unsigned_t[`number&lowbar;unsigned&lowbar;t`], or link:#nlohmann-basic_json-00-number_float_t[`number&lowbar;float&lowbar;t`]&period;
|===

get a (pointer) value (explicit)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename ValueTypeCV,
    typename ValueType = detail::uncvref&lowbar;t&lt;ValueTypeCV&gt;&gt;
constexpr
decltype(std&colon;&colon;declval&lt;const basic&lowbar;json&lowbar;t&amp;&gt;()&period;template get&lowbar;impl&lt;ValueType&gt;(detail&colon;&colon;priority&lowbar;tag&lt;4&gt; &lcub;&rcub;))
get() const noexcept(noexcept(std&colon;&colon;declval&lt;const basic&lowbar;json&lowbar;t &amp;&gt;()&period;template get&lowbar;impl&lt;ValueType&gt;(detail&colon;&colon;priority&lowbar;tag&lt;4&gt;&lcub;&rcub;)));
----

== Description

Performs explicit type conversion between the JSON value and a compatible value if required&period;

&hyphen; If the requested type is a pointer to the internally stored JSON value that pointer is returned&period; No copies are made&period;

&hyphen; If the requested type is the current link:#nlohmann-basic_json-00-2constructor-0f[`basic&lowbar;json`], or a different link:#nlohmann-basic_json-00-2constructor-0f[`basic&lowbar;json`] convertible from the current link:#nlohmann-basic_json-00-2constructor-0f[`basic&lowbar;json`]&period;

&hyphen; Otherwise the value is converted by calling the link:#nlohmann-basic_json-00-json_serializer[`json&lowbar;serializer&lt;ValueType&gt;`] `from&lowbar;json()` method&period;

== Exceptions

[cols=2]
|===
| Name
| Thrown on
| `what`
| link:#nlohmann-basic_json-00-json_serializer[`json&lowbar;serializer&lt;ValueType&gt;`] `from&lowbar;json()` method throws if conversion is required
|===

== Return Value

copy of the JSON value, converted to

== Template Parameters

[cols=2]
|===
| Name
| Description
| *ValueTypeCV*
| the provided value type
| *ValueType*
| the returned value type
| *ValueType*
| if necessary
|===

get a binary value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-binary_t[binary&lowbar;t]&
get&lowbar;binary();
----

== Return Value

a type for a packed binary type

get a binary value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-binary_t[binary&lowbar;t] const&
get&lowbar;binary() const;
----

== Return Value

a type for a packed binary type

get a pointer value (implicit)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename PointerType&gt;
requires std&colon;&colon;is&lowbar;pointer&lt;PointerType&gt;&colon;&colon;value
decltype(std&colon;&colon;declval&lt;basic&lowbar;json&lowbar;t&amp;&gt;()&period;get&lowbar;impl&lowbar;ptr(std&colon;&colon;declval&lt;PointerType&gt;()))
get&lowbar;ptr() noexcept;
----

get a pointer value (implicit)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename PointerType&gt;
requires std&colon;&colon;is&lowbar;pointer&lt;PointerType&gt;&colon;&colon;value&amp;&amp;
                   std&colon;&colon;is&lowbar;const&lt;typename std&colon;&colon;remove&lowbar;pointer&lt;PointerType&gt;&colon;&colon;type&gt;&colon;&colon;value
constexpr
decltype(std&colon;&colon;declval&lt;const basic&lowbar;json&lowbar;t&amp;&gt;()&period;get&lowbar;impl&lowbar;ptr(std&colon;&colon;declval&lt;PointerType&gt;()))
get&lowbar;ptr() const noexcept;
----

get a reference value (implicit)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename ReferenceType&gt;
requires std&colon;&colon;is&lowbar;reference&lt;ReferenceType&gt;&colon;&colon;value
ReferenceType
get&lowbar;ref();
----

get a reference value (implicit)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename ReferenceType&gt;
requires std&colon;&colon;is&lowbar;reference&lt;ReferenceType&gt;&colon;&colon;value&amp;&amp;
                   std&colon;&colon;is&lowbar;const&lt;typename std&colon;&colon;remove&lowbar;reference&lt;ReferenceType&gt;&colon;&colon;type&gt;&colon;&colon;value
ReferenceType
get&lowbar;ref() const;
----

get a value (explicit)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename ValueType&gt;
requires !detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;ValueType&gt;&colon;&colon;value&amp;&amp;
                   detail&colon;&colon;has&lowbar;from&lowbar;json&lt;basic&lowbar;json&lowbar;t, ValueType&gt;&colon;&colon;value
ValueType&
get&lowbar;to(ValueType& v) const noexcept(noexcept(JSONSerializer&lt;ValueType, void&gt;&colon;&colon;from&lowbar;json(std&colon;&colon;declval&lt;const basic&lowbar;json&lowbar;t &amp;&gt;(), v)));
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename ValueType&gt;
requires detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;ValueType&gt;&colon;&colon;value
ValueType&
get&lowbar;to(ValueType& v) const;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename T,
    std::size&lowbar;t N,
    typename Array = T(&)[]&gt;
requires detail&colon;&colon;has&lowbar;from&lowbar;json&lt;basic&lowbar;json&lowbar;t, Array&gt;&colon;&colon;value
Array
get&lowbar;to(T(& v)[]) const noexcept(noexcept(JSONSerializer&lt;Array, void&gt;&colon;&colon;from&lowbar;json(std&colon;&colon;declval&lt;const basic&lowbar;json&lowbar;t &amp;&gt;(), v)));
----

inserts range of elements into object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
insert(
    link:#nlohmann-basic_json-00-const_iterator[const&lowbar;iterator] first,
    link:#nlohmann-basic_json-00-const_iterator[const&lowbar;iterator] last);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *first*
| a const iterator for a basic&lowbar;json container
| *last*
| a const iterator for a basic&lowbar;json container
|===

inserts elements from initializer list into array

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-iterator[iterator]
insert(
    link:#nlohmann-basic_json-00-const_iterator[const&lowbar;iterator] pos,
    link:#nlohmann-basic_json-00-initializer_list_t[initializer&lowbar;list&lowbar;t] ilist);
----

== Return Value

an iterator for a basic&lowbar;json container

== Parameters

[cols=2]
|===
| Name
| Description
| *pos*
| a const iterator for a basic&lowbar;json container
| *ilist*
| helper type for initializer lists of basic&lowbar;json values
|===

inserts element into array

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-iterator[iterator]
insert(
    link:#nlohmann-basic_json-00-const_iterator[const&lowbar;iterator] pos,
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& val);
----

== Return Value

an iterator for a basic&lowbar;json container

== Parameters

[cols=2]
|===
| Name
| Description
| *pos*
| a const iterator for a basic&lowbar;json container
| *val*
| a class to store JSON values
|===

inserts element into array

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-iterator[iterator]
insert(
    link:#nlohmann-basic_json-00-const_iterator[const&lowbar;iterator] pos,
    link:#nlohmann-basic_json-00[basic&lowbar;json]&& val);
----

== Return Value

an iterator for a basic&lowbar;json container

== Parameters

[cols=2]
|===
| Name
| Description
| *pos*
| a const iterator for a basic&lowbar;json container
| *val*
| a class to store JSON values
|===

inserts range of elements into array

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-iterator[iterator]
insert(
    link:#nlohmann-basic_json-00-const_iterator[const&lowbar;iterator] pos,
    link:#nlohmann-basic_json-00-const_iterator[const&lowbar;iterator] first,
    link:#nlohmann-basic_json-00-const_iterator[const&lowbar;iterator] last);
----

== Return Value

an iterator for a basic&lowbar;json container

== Parameters

[cols=2]
|===
| Name
| Description
| *pos*
| a const iterator for a basic&lowbar;json container
| *first*
| a const iterator for a basic&lowbar;json container
| *last*
| a const iterator for a basic&lowbar;json container
|===

inserts copies of element into array

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-iterator[iterator]
insert(
    link:#nlohmann-basic_json-00-const_iterator[const&lowbar;iterator] pos,
    link:#nlohmann-basic_json-00-size_type[size&lowbar;type] cnt,
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& val);
----

== Return Value

an iterator for a basic&lowbar;json container

== Parameters

[cols=2]
|===
| Name
| Description
| *pos*
| a const iterator for a basic&lowbar;json container
| *cnt*
| a type to represent container sizes
| *val*
| a class to store JSON values
|===

Helper for insertion of an iterator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename&period;&period;&period; Args&gt;
link:#nlohmann-basic_json-00-iterator[iterator]
insert&lowbar;iterator(
    link:#nlohmann-basic_json-00-const_iterator[const&lowbar;iterator] pos,
    Args&period;&period;&period;&&&period;&period;&period; args);
----

== Description

[NOTE]
====
&colon; This uses std&colon;&colon;distance to support GCC 4&period;8, see https&colon;&sol;&sol;github&period;com&sol;nlohmann&sol;json&sol;pull&sol;1257

====

== Return Value

an iterator for a basic&lowbar;json container

== Parameters

[cols=2]
|===
| Name
| Description
| *pos*
| a const iterator for a basic&lowbar;json container
|===

return whether value is an array

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;array() const noexcept;
----

return whether value is a binary array

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;binary() const noexcept;
----

return whether value is a boolean

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;boolean() const noexcept;
----

return whether value is discarded

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;discarded() const noexcept;
----

return whether value is null

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;null() const noexcept;
----

return whether value is a number

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;number() const noexcept;
----

return whether value is a floating&hyphen;point number

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;number&lowbar;float() const noexcept;
----

return whether value is an integer number

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;number&lowbar;integer() const noexcept;
----

return whether value is an unsigned integer number

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;number&lowbar;unsigned() const noexcept;
----

return whether value is an object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;object() const noexcept;
----

return whether type is primitive

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;primitive() const noexcept;
----

return whether value is a string

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;string() const noexcept;
----

return whether type is structured

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
is&lowbar;structured() const noexcept;
----

helper to access iterator member functions in range&hyphen;based for

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00[iteration&lowbar;proxy&lt;iterator&gt;]
items() noexcept;
----

helper to access iterator member functions in range&hyphen;based for

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00[iteration&lowbar;proxy&lt;const&lowbar;iterator&gt;]
items() const noexcept;
----

returns the maximum possible number of elements

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-size_type[size&lowbar;type]
max&lowbar;size() const noexcept;
----

== Return Value

a type to represent container sizes

applies a JSON Merge Patch

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
merge&lowbar;patch(link:#nlohmann-basic_json-00[basic&lowbar;json] const& apply&lowbar;patch);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *apply&lowbar;patch*
| a class to store JSON values
|===

add an object to an object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-reference[reference]
operator&plus;&equals;(link:#nlohmann-basic_json-00-initializer_list_t[initializer&lowbar;list&lowbar;t] init);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *init*
| The right operand
|===

add an object to an array

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-reference[reference]
operator&plus;&equals;(link:#nlohmann-basic_json-00[basic&lowbar;json] const& val);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *val*
| The right operand
|===

add an object to an object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-reference[reference]
operator&plus;&equals;(object&lowbar;t::value&lowbar;type const& val);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *val*
| The right operand
|===

add an object to an array

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-reference[reference]
operator&plus;&equals;(link:#nlohmann-basic_json-00[basic&lowbar;json]&& val);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *val*
| The right operand
|===

access specified object element

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-reference[reference]
operator&lsqb;&rsqb;(object&lowbar;t::key&lowbar;type key);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *key*
| The right operand
|===

access specified array element

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-reference[reference]
operator&lsqb;&rsqb;(link:#nlohmann-basic_json-00-size_type[size&lowbar;type] idx);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *idx*
| The right operand
|===

access specified array element

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-const_reference[const&lowbar;reference]
operator&lsqb;&rsqb;(link:#nlohmann-basic_json-00-size_type[size&lowbar;type] idx) const;
----

== Return Value

the type of an element const reference

== Parameters

[cols=2]
|===
| Name
| Description
| *idx*
| The right operand
|===

access specified element via JSON Pointer

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-reference[reference]
operator&lsqb;&rsqb;(link:#nlohmann-basic_json-00-json_pointer[json&lowbar;pointer] const& ptr);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *ptr*
| The right operand
|===

access specified element via JSON Pointer

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-const_reference[const&lowbar;reference]
operator&lsqb;&rsqb;(link:#nlohmann-basic_json-00-json_pointer[json&lowbar;pointer] const& ptr) const;
----

== Return Value

the type of an element const reference

== Parameters

[cols=2]
|===
| Name
| Description
| *ptr*
| The right operand
|===

access specified object element

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-const_reference[const&lowbar;reference]
operator&lsqb;&rsqb;(object&lowbar;t::key&lowbar;type const& key) const;
----

== Return Value

the type of an element const reference

== Parameters

[cols=2]
|===
| Name
| Description
| *key*
| The right operand
|===

Subscript operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename BasicJsonType&gt;
requires detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;BasicJsonType&gt;&colon;&colon;value
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
link:#nlohmann-basic_json-00-reference[reference]
operator&lsqb;&rsqb;(link:#nlohmann-json_pointer-0a[nlohmann::json&lowbar;pointer&lt;BasicJsonType&gt;] const& ptr);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *ptr*
| The right operand
|===

Subscript operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename BasicJsonType&gt;
requires detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;BasicJsonType&gt;&colon;&colon;value
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
link:#nlohmann-basic_json-00-const_reference[const&lowbar;reference]
operator&lsqb;&rsqb;(link:#nlohmann-json_pointer-0a[nlohmann::json&lowbar;pointer&lt;BasicJsonType&gt;] const& ptr) const;
----

== Return Value

the type of an element const reference

== Parameters

[cols=2]
|===
| Name
| Description
| *ptr*
| The right operand
|===

access specified object element

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;basic&lowbar;json&lowbar;key&lowbar;type&lt;basic&lowbar;json&lowbar;t, KeyType&gt;&colon;&colon;value
link:#nlohmann-basic_json-00-reference[reference]
operator&lsqb;&rsqb;(KeyType&& key);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *key*
| The right operand
|===

access specified object element

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;basic&lowbar;json&lowbar;key&lowbar;type&lt;basic&lowbar;json&lowbar;t, KeyType&gt;&colon;&colon;value
link:#nlohmann-basic_json-00-const_reference[const&lowbar;reference]
operator&lsqb;&rsqb;(KeyType&& key) const;
----

== Return Value

the type of an element const reference

== Parameters

[cols=2]
|===
| Name
| Description
| *key*
| The right operand
|===

Subscript operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename T&gt;
link:#nlohmann-basic_json-00-reference[reference]
operator&lsqb;&rsqb;(T* key);
----

== Return Value

the type of an element reference

== Parameters

[cols=2]
|===
| Name
| Description
| *key*
| The right operand
|===

Subscript operator

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename T&gt;
link:#nlohmann-basic_json-00-const_reference[const&lowbar;reference]
operator&lsqb;&rsqb;(T* key) const;
----

== Return Value

the type of an element const reference

== Parameters

[cols=2]
|===
| Name
| Description
| *key*
| The right operand
|===

applies a JSON patch to a copy of the current object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00[basic&lowbar;json]
patch(link:#nlohmann-basic_json-00[basic&lowbar;json] const& json&lowbar;patch) const;
----

== Return Value

a class to store JSON values

== Parameters

[cols=2]
|===
| Name
| Description
| *json&lowbar;patch*
| a class to store JSON values
|===

applies a JSON patch in&hyphen;place without copying the object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
patch&lowbar;inplace(link:#nlohmann-basic_json-00[basic&lowbar;json] const& json&lowbar;patch);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *json&lowbar;patch*
| a class to store JSON values
|===

add an object to an object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
push&lowbar;back(link:#nlohmann-basic_json-00-initializer_list_t[initializer&lowbar;list&lowbar;t] init);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *init*
| helper type for initializer lists of basic&lowbar;json values
|===

add an object to an array

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
push&lowbar;back(link:#nlohmann-basic_json-00[basic&lowbar;json] const& val);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *val*
| a class to store JSON values
|===

add an object to an object

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
push&lowbar;back(object&lowbar;t::value&lowbar;type const& val);
----

add an object to an array

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
push&lowbar;back(link:#nlohmann-basic_json-00[basic&lowbar;json]&& val);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *val*
| a class to store JSON values
|===

returns an iterator to the reverse&hyphen;beginning

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-reverse_iterator[reverse&lowbar;iterator]
rbegin() noexcept;
----

== Return Value

a reverse iterator for a basic&lowbar;json container

returns an iterator to the reverse&hyphen;beginning

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-const_reverse_iterator[const&lowbar;reverse&lowbar;iterator]
rbegin() const noexcept;
----

== Return Value

a const reverse iterator for a basic&lowbar;json container

returns an iterator to the reverse&hyphen;end

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-reverse_iterator[reverse&lowbar;iterator]
rend() noexcept;
----

== Return Value

a reverse iterator for a basic&lowbar;json container

returns an iterator to the reverse&hyphen;end

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-const_reverse_iterator[const&lowbar;reverse&lowbar;iterator]
rend() const noexcept;
----

== Return Value

a const reverse iterator for a basic&lowbar;json container

returns the number of elements

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00-size_type[size&lowbar;type]
size() const noexcept;
----

== Return Value

a type to represent container sizes

exchanges the values

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
swap(link:#nlohmann-basic_json-00-reference[reference] other) noexcept(std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;constructible&lt;value&lowbar;t&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;assignable&lt;value&lowbar;t&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;constructible&lt;json&lowbar;value&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;assignable&lt;json&lowbar;value&gt;&colon;&colon;value);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *other*
| the type of an element reference
|===

exchanges the values

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
swap(link:#nlohmann-basic_json-00-array_t[array&lowbar;t]& other);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *other*
| a type for an array
|===

exchanges the values

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
swap(link:#nlohmann-basic_json-00-binary_t[binary&lowbar;t]& other);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *other*
| a type for a packed binary type
|===

exchanges the values

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
swap(binary&lowbar;t::container&lowbar;type& other);
----

exchanges the values

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
swap(link:#nlohmann-basic_json-00-object_t[object&lowbar;t]& other);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *other*
| a type for an object
|===

exchanges the values

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
swap(link:#nlohmann-basic_json-00-string_t[string&lowbar;t]& other);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *other*
| a type for a string
|===

return the type of the JSON value (explicit)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
link:#nlohmann-basic_json-00-value_t[value&lowbar;t]
type() const noexcept;
----

return the type as string

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;returns&lowbar;nonnull&lowbar;&lowbar;&rsqb;&rsqb;
char const*
type&lowbar;name() const noexcept;
----

unflatten a previously flattened JSON value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-00[basic&lowbar;json]
unflatten() const;
----

== Return Value

a class to store JSON values

updates a JSON object from another object, overwriting existing keys

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
update(
    link:#nlohmann-basic_json-00-const_reference[const&lowbar;reference] j,
    bool merge&lowbar;objects = false);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *j*
| the type of an element const reference
|===

updates a JSON object from another object, overwriting existing keys

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
update(
    link:#nlohmann-basic_json-00-const_iterator[const&lowbar;iterator] first,
    link:#nlohmann-basic_json-00-const_iterator[const&lowbar;iterator] last,
    bool merge&lowbar;objects = false);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *first*
| a const iterator for a basic&lowbar;json container
| *last*
| a const iterator for a basic&lowbar;json container
|===

access specified object element via JSON Pointer with default value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class ValueType&gt;
requires detail&colon;&colon;is&lowbar;getable&lt;basic&lowbar;json&lowbar;t, ValueType&gt;&colon;&colon;value
                   &amp;&amp; !std&colon;&colon;is&lowbar;same&lt;value&lowbar;t, detail&colon;&colon;uncvref&lowbar;t&lt;ValueType&gt;&gt;&colon;&colon;value
ValueType
value(
    link:#nlohmann-basic_json-00-json_pointer[json&lowbar;pointer] const& ptr,
    ValueType const& default&lowbar;value) const;
----

== Parameters

[cols=2]
|===
| Name
| Description
| *ptr*
| JSON Pointer, see link:#nlohmann-json_pointer-0b[`nlohmann&colon;&colon;json&lowbar;pointer`]
|===

access specified object element with default value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class ValueType&gt;
requires !detail&colon;&colon;is&lowbar;transparent&lt;object&lowbar;comparator&lowbar;t&gt;&colon;&colon;value
                   &amp;&amp; detail&colon;&colon;is&lowbar;getable&lt;basic&lowbar;json&lowbar;t, ValueType&gt;&colon;&colon;value
                   &amp;&amp; !std&colon;&colon;is&lowbar;same&lt;value&lowbar;t, detail&colon;&colon;uncvref&lowbar;t&lt;ValueType&gt;&gt;&colon;&colon;value
ValueType
value(
    object&lowbar;t::key&lowbar;type const& key,
    ValueType const& default&lowbar;value) const;
----

access specified object element via JSON Pointer with default value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ValueType,
    class ReturnType = value&lowbar;return&lowbar;type&lt;ValueType&gt;::type&gt;
requires detail&colon;&colon;is&lowbar;getable&lt;basic&lowbar;json&lowbar;t, ReturnType&gt;&colon;&colon;value
                   &amp;&amp; !std&colon;&colon;is&lowbar;same&lt;value&lowbar;t, detail&colon;&colon;uncvref&lowbar;t&lt;ValueType&gt;&gt;&colon;&colon;value
ReturnType
value(
    link:#nlohmann-basic_json-00-json_pointer[json&lowbar;pointer] const& ptr,
    ValueType&& default&lowbar;value) const;
----

== Parameters

[cols=2]
|===
| Name
| Description
| *ptr*
| JSON Pointer, see link:#nlohmann-json_pointer-0b[`nlohmann&colon;&colon;json&lowbar;pointer`]
|===

access specified object element with default value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ValueType,
    class ReturnType = value&lowbar;return&lowbar;type&lt;ValueType&gt;::type&gt;
requires !detail&colon;&colon;is&lowbar;transparent&lt;object&lowbar;comparator&lowbar;t&gt;&colon;&colon;value
                   &amp;&amp; detail&colon;&colon;is&lowbar;getable&lt;basic&lowbar;json&lowbar;t, ReturnType&gt;&colon;&colon;value
                   &amp;&amp; !std&colon;&colon;is&lowbar;same&lt;value&lowbar;t, detail&colon;&colon;uncvref&lowbar;t&lt;ValueType&gt;&gt;&colon;&colon;value
ReturnType
value(
    object&lowbar;t::key&lowbar;type const& key,
    ValueType&& default&lowbar;value) const;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ValueType,
    class BasicJsonType&gt;
requires detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;BasicJsonType&gt;&colon;&colon;value
                   &amp;&amp; detail&colon;&colon;is&lowbar;getable&lt;basic&lowbar;json&lowbar;t, ValueType&gt;&colon;&colon;value
                   &amp;&amp; !std&colon;&colon;is&lowbar;same&lt;value&lowbar;t, detail&colon;&colon;uncvref&lowbar;t&lt;ValueType&gt;&gt;&colon;&colon;value
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
ValueType
value(
    link:#nlohmann-json_pointer-0a[nlohmann::json&lowbar;pointer&lt;BasicJsonType&gt;] const& ptr,
    ValueType const& default&lowbar;value) const;
----

access specified object element with default value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ValueType,
    class KeyType&gt;
requires detail&colon;&colon;is&lowbar;transparent&lt;object&lowbar;comparator&lowbar;t&gt;&colon;&colon;value
                   &amp;&amp; !detail&colon;&colon;is&lowbar;json&lowbar;pointer&lt;KeyType&gt;&colon;&colon;value
                   &amp;&amp; is&lowbar;comparable&lowbar;with&lowbar;object&lowbar;key&lt;KeyType&gt;&colon;&colon;value
                   &amp;&amp; detail&colon;&colon;is&lowbar;getable&lt;basic&lowbar;json&lowbar;t, ValueType&gt;&colon;&colon;value
                   &amp;&amp; !std&colon;&colon;is&lowbar;same&lt;value&lowbar;t, detail&colon;&colon;uncvref&lowbar;t&lt;ValueType&gt;&gt;&colon;&colon;value
ValueType
value(
    KeyType&& key,
    ValueType const& default&lowbar;value) const;
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ValueType,
    class BasicJsonType,
    class ReturnType = value&lowbar;return&lowbar;type&lt;ValueType&gt;::type&gt;
requires detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;BasicJsonType&gt;&colon;&colon;value
                   &amp;&amp; detail&colon;&colon;is&lowbar;getable&lt;basic&lowbar;json&lowbar;t, ReturnType&gt;&colon;&colon;value
                   &amp;&amp; !std&colon;&colon;is&lowbar;same&lt;value&lowbar;t, detail&colon;&colon;uncvref&lowbar;t&lt;ValueType&gt;&gt;&colon;&colon;value
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
ReturnType
value(
    link:#nlohmann-json_pointer-0a[nlohmann::json&lowbar;pointer&lt;BasicJsonType&gt;] const& ptr,
    ValueType&& default&lowbar;value) const;
----

access specified object element via JSON Pointer with default value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class ValueType,
    class KeyType,
    class ReturnType = value&lowbar;return&lowbar;type&lt;ValueType&gt;::type&gt;
requires detail&colon;&colon;is&lowbar;transparent&lt;object&lowbar;comparator&lowbar;t&gt;&colon;&colon;value
                   &amp;&amp; !detail&colon;&colon;is&lowbar;json&lowbar;pointer&lt;KeyType&gt;&colon;&colon;value
                   &amp;&amp; is&lowbar;comparable&lowbar;with&lowbar;object&lowbar;key&lt;KeyType&gt;&colon;&colon;value
                   &amp;&amp; detail&colon;&colon;is&lowbar;getable&lt;basic&lowbar;json&lowbar;t, ReturnType&gt;&colon;&colon;value
                   &amp;&amp; !std&colon;&colon;is&lowbar;same&lt;value&lowbar;t, detail&colon;&colon;uncvref&lowbar;t&lt;ValueType&gt;&gt;&colon;&colon;value
ReturnType
value(
    KeyType&& key,
    ValueType&& default&lowbar;value) const;
----

get a value (implicit)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename ValueType&gt;
requires detail&colon;&colon;conjunction &lt;
                       detail&colon;&colon;negation&lt;std&colon;&colon;is&lowbar;pointer&lt;ValueType&gt;&gt;,
                       detail&colon;&colon;negation&lt;std&colon;&colon;is&lowbar;same&lt;ValueType, std&colon;&colon;nullptr&lowbar;t&gt;&gt;,
                       detail&colon;&colon;negation&lt;std&colon;&colon;is&lowbar;same&lt;ValueType, detail&colon;&colon;json&lowbar;ref&lt;basic&lowbar;json&gt;&gt;&gt;,
                                        detail&colon;&colon;negation&lt;std&colon;&colon;is&lowbar;same&lt;ValueType, typename string&lowbar;t&colon;&colon;value&lowbar;type&gt;&gt;,
                                        detail&colon;&colon;negation&lt;detail&colon;&colon;is&lowbar;basic&lowbar;json&lt;ValueType&gt;&gt;,
                                        detail&colon;&colon;negation&lt;std&colon;&colon;is&lowbar;same&lt;ValueType, std&colon;&colon;initializer&lowbar;list&lt;typename string&lowbar;t&colon;&colon;value&lowbar;type&gt;&gt;&gt;,
&num;if defined(JSON&lowbar;HAS&lowbar;CPP&lowbar;17) &amp;&amp; (defined(&lowbar;&lowbar;GNUC&lowbar;&lowbar;) &verbar;&verbar; (defined(&lowbar;MSC&lowbar;VER) &amp;&amp; &lowbar;MSC&lowbar;VER &gt;&equals; 1910 &amp;&amp; &lowbar;MSC&lowbar;VER &lt;&equals; 1914))
                                                detail&colon;&colon;negation&lt;std&colon;&colon;is&lowbar;same&lt;ValueType, std&colon;&colon;string&lowbar;view&gt;&gt;,
&num;endif
&num;if defined(JSON&lowbar;HAS&lowbar;CPP&lowbar;17) &amp;&amp; JSON&lowbar;HAS&lowbar;STATIC&lowbar;RTTI
                                                detail&colon;&colon;negation&lt;std&colon;&colon;is&lowbar;same&lt;ValueType, std&colon;&colon;any&gt;&gt;,
&num;endif
                                                detail&colon;&colon;is&lowbar;detected&lowbar;lazy&lt;detail&colon;&colon;get&lowbar;template&lowbar;function, const basic&lowbar;json&lowbar;t&amp;, ValueType&gt;
                                                &gt;&colon;&colon;value
operator ValueType() const;
----

== Description

Implicit type conversion between the JSON value and a compatible value&period; The call is realized by calling link:#nlohmann-basic_json-00-get-0a[`get() const`]&period;

Linear in the size of the JSON value&period;

&lcub;The example below shows several conversions from JSON values to other types&period; There a few things to note&colon; (1) Floating&hyphen;point numbers can be converted to integers, (2) A JSON array can be converted to a standard `std&colon;&colon;vector&lt;short&gt;`, (3) A JSON object can be converted to C&plus;&plus; associative containers such as `std&colon;&colon;unordered&lowbar;map&lt;std&colon;&colon;string&bsol;, json&gt;`&period;,operator&lowbar;&lowbar;ValueType&rcub;

== Exceptions

[cols=2]
|===
| Name
| Thrown on
| `type&lowbar;error&period;302`
| in case passed type _ValueType_ is incompatible to the JSON value type (e&period;g&period;, the JSON value is of type boolean, but a string is requested)&semi; see example below
|===

== Return Value

copy of the JSON value, converted to type _ValueType_

== Template Parameters

[cols=2]
|===
| Name
| Description
| *ValueType*
| non&hyphen;pointer type compatible to the JSON value, for instance `int` for JSON integer numbers, `bool` for JSON booleans, or `std&colon;&colon;vector` types for JSON arrays&period; The character type of link:#nlohmann-basic_json-00-string_t[`string&lowbar;t`] as well as an initializer list of this type is excluded to avoid ambiguities as these types implicitly convert to `std&colon;&colon;string`&period;
|===

return the type of the JSON value (implicit)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
operator link:#nlohmann-basic_json-00-value_t[value&lowbar;t]() const noexcept;
----

== Return Value

The object converted to `value&lowbar;t`

comparison&colon; equal

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename ScalarType&gt;
requires std&colon;&colon;is&lowbar;scalar&lowbar;v&lt;ScalarType&gt;
bool
operator&equals;&equals;(ScalarType rhs) const noexcept;
----

== Return Value

`true` if the objects are equal, `false` otherwise

== Parameters

[cols=2]
|===
| Name
| Description
| *rhs*
| The right operand
|===

comparison&colon; equal

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
bool
operator&equals;&equals;(link:#nlohmann-basic_json-00-const_reference[const&lowbar;reference] rhs) const noexcept;
----

== Return Value

`true` if the objects are equal, `false` otherwise

== Parameters

[cols=2]
|===
| Name
| Description
| *rhs*
| The right operand
|===

comparison&colon; not equal

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
bool
operator!&equals;(link:#nlohmann-basic_json-00-const_reference[const&lowbar;reference] rhs) const noexcept;
----

== Return Value

`true` if the objects are not equal, `false` otherwise

== Parameters

[cols=2]
|===
| Name
| Description
| *rhs*
| The right operand
|===

comparison&colon; 3&hyphen;way

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename ScalarType&gt;
requires std&colon;&colon;is&lowbar;scalar&lowbar;v&lt;ScalarType&gt;
std::partial&lowbar;ordering
operator&lt;&equals;&gt;(ScalarType rhs) const noexcept;
----

== Return Value

The relative order of the objects

== Parameters

[cols=2]
|===
| Name
| Description
| *rhs*
| The right operand
|===

comparison&colon; 3&hyphen;way

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::partial&lowbar;ordering
operator&lt;&equals;&gt;(link:#nlohmann-basic_json-00-const_reference[const&lowbar;reference] rhs) const noexcept;
----

== Return Value

The relative order of the objects

== Parameters

[cols=2]
|===
| Name
| Description
| *rhs*
| The right operand
|===

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;, &lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
bool
accept(
    detail::span&lowbar;input&lowbar;adapter&& i,
    bool const ignore&lowbar;comments = false,
    bool const ignore&lowbar;trailing&lowbar;commas = false);
----

check if the input is valid JSON

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename InputType&gt;
static
bool
accept(
    InputType&& i,
    bool const ignore&lowbar;comments = false,
    bool const ignore&lowbar;trailing&lowbar;commas = false);
----

check if the input is valid JSON

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename IteratorType&gt;
static
bool
accept(
    IteratorType first,
    IteratorType last,
    bool const ignore&lowbar;comments = false,
    bool const ignore&lowbar;trailing&lowbar;commas = false);
----

explicitly create an array from an initializer list

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
array(link:#nlohmann-basic_json-00-initializer_list_t[initializer&lowbar;list&lowbar;t] init = &lcub;&rcub;);
----

== Return Value

a class to store JSON values

== Parameters

[cols=2]
|===
| Name
| Description
| *init*
| helper type for initializer lists of basic&lowbar;json values
|===

explicitly create a binary array (without subtype)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
binary(binary&lowbar;t::container&lowbar;type const& init);
----

== Return Value

a class to store JSON values

explicitly create a binary array

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
binary(binary&lowbar;t::container&lowbar;type&& init);
----

== Return Value

a class to store JSON values

explicitly create a binary array (with subtype)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
binary(
    binary&lowbar;t::container&lowbar;type const& init,
    binary&lowbar;t::subtype&lowbar;type subtype);
----

== Return Value

a class to store JSON values

explicitly create a binary array (with subtype)

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
binary(
    binary&lowbar;t::container&lowbar;type&& init,
    binary&lowbar;t::subtype&lowbar;type subtype);
----

== Return Value

a class to store JSON values

creates a diff as a JSON patch

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
diff(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& source,
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& target,
    link:#nlohmann-basic_json-00-string_t[string&lowbar;t] const& path = &quot;&quot;);
----

== Return Value

a class to store JSON values

== Parameters

[cols=2]
|===
| Name
| Description
| *source*
| a class to store JSON values
| *target*
| a class to store JSON values
| *path*
| a type for a string
|===

create a JSON value from an input in BJData format

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename InputType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;bjdata(
    InputType&& i,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

== Return Value

a class to store JSON values

create a JSON value from an input in BJData format

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename IteratorType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;bjdata(
    IteratorType first,
    IteratorType last,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

== Return Value

a class to store JSON values

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;, &lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;bson(
    detail::span&lowbar;input&lowbar;adapter&& i,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

create a JSON value from an input in BSON format

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename InputType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;bson(
    InputType&& i,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

== Return Value

a class to store JSON values

create a JSON value from an input in BSON format

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename IteratorType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;bson(
    IteratorType first,
    IteratorType last,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

== Return Value

a class to store JSON values

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename T&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;, &lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;bson(
    T const* ptr,
    std::size&lowbar;t len,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;, &lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;cbor(
    detail::span&lowbar;input&lowbar;adapter&& i,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true,
    link:#nlohmann-basic_json-00-cbor_tag_handler_t[cbor&lowbar;tag&lowbar;handler&lowbar;t] const tag&lowbar;handler = cbor&lowbar;tag&lowbar;handler&lowbar;t&colon;&colon;error);
----

create a JSON value from an input in CBOR format

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename InputType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;cbor(
    InputType&& i,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true,
    link:#nlohmann-basic_json-00-cbor_tag_handler_t[cbor&lowbar;tag&lowbar;handler&lowbar;t] const tag&lowbar;handler = cbor&lowbar;tag&lowbar;handler&lowbar;t&colon;&colon;error);
----

== Return Value

a class to store JSON values

== Parameters

[cols=2]
|===
| Name
| Description
| *tag&lowbar;handler*
| how to treat CBOR tags
|===

create a JSON value from an input in CBOR format

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename IteratorType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;cbor(
    IteratorType first,
    IteratorType last,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true,
    link:#nlohmann-basic_json-00-cbor_tag_handler_t[cbor&lowbar;tag&lowbar;handler&lowbar;t] const tag&lowbar;handler = cbor&lowbar;tag&lowbar;handler&lowbar;t&colon;&colon;error);
----

== Return Value

a class to store JSON values

== Parameters

[cols=2]
|===
| Name
| Description
| *tag&lowbar;handler*
| how to treat CBOR tags
|===

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename T&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;, &lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;cbor(
    T const* ptr,
    std::size&lowbar;t len,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true,
    link:#nlohmann-basic_json-00-cbor_tag_handler_t[cbor&lowbar;tag&lowbar;handler&lowbar;t] const tag&lowbar;handler = cbor&lowbar;tag&lowbar;handler&lowbar;t&colon;&colon;error);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;, &lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;msgpack(
    detail::span&lowbar;input&lowbar;adapter&& i,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

create a JSON value from an input in MessagePack format

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename InputType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;msgpack(
    InputType&& i,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

== Return Value

a class to store JSON values

create a JSON value from an input in MessagePack format

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename IteratorType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;msgpack(
    IteratorType first,
    IteratorType last,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

== Return Value

a class to store JSON values

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename T&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;, &lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;msgpack(
    T const* ptr,
    std::size&lowbar;t len,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;, &lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;ubjson(
    detail::span&lowbar;input&lowbar;adapter&& i,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

create a JSON value from an input in UBJSON format

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename InputType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;ubjson(
    InputType&& i,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

== Return Value

a class to store JSON values

create a JSON value from an input in UBJSON format

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename IteratorType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;ubjson(
    IteratorType first,
    IteratorType last,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

== Return Value

a class to store JSON values

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename T&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;, &lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
from&lowbar;ubjson(
    T const* ptr,
    std::size&lowbar;t len,
    bool const strict = true,
    bool const allow&lowbar;exceptions = true);
----

returns the allocator associated with the container

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
link:#nlohmann-basic_json-00-allocator_type[allocator&lowbar;type]
get&lowbar;allocator();
----

== Return Value

the allocator type

wrapper to access iterator member functions in range&hyphen;based for

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[iteration&lowbar;proxy&lt;const&lowbar;iterator&gt;]
iterator&lowbar;wrapper(link:#nlohmann-basic_json-00-const_reference[const&lowbar;reference] ref) noexcept;
----

== Parameters

[cols=2]
|===
| Name
| Description
| *ref*
| the type of an element const reference
|===

wrapper to access iterator member functions in range&hyphen;based for

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[iteration&lowbar;proxy&lt;iterator&gt;]
iterator&lowbar;wrapper(link:#nlohmann-basic_json-00-reference[reference] ref) noexcept;
----

== Parameters

[cols=2]
|===
| Name
| Description
| *ref*
| the type of an element reference
|===

returns version information on the library

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
meta();
----

== Return Value

a class to store JSON values

explicitly create an object from an initializer list

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
object(link:#nlohmann-basic_json-00-initializer_list_t[initializer&lowbar;list&lowbar;t] init = &lcub;&rcub;);
----

== Return Value

a class to store JSON values

== Parameters

[cols=2]
|===
| Name
| Description
| *init*
| helper type for initializer lists of basic&lowbar;json values
|===

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;, &lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
parse(
    detail::span&lowbar;input&lowbar;adapter&& i,
    link:#nlohmann-basic_json-00-parser_callback_t[parser&lowbar;callback&lowbar;t] cb = nullptr,
    bool const allow&lowbar;exceptions = true,
    bool const ignore&lowbar;comments = false,
    bool const ignore&lowbar;trailing&lowbar;commas = false);
----

deserialize from a compatible input

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename InputType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
parse(
    InputType&& i,
    link:#nlohmann-basic_json-00-parser_callback_t[parser&lowbar;callback&lowbar;t] cb = nullptr,
    bool const allow&lowbar;exceptions = true,
    bool const ignore&lowbar;comments = false,
    bool const ignore&lowbar;trailing&lowbar;commas = false);
----

== Return Value

a class to store JSON values

== Parameters

[cols=2]
|===
| Name
| Description
| *cb*
| per&hyphen;element parser callback type
|===

deserialize from a pair of character iterators

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename IteratorType&gt;
&lsqb;&lsqb;&lowbar;&lowbar;warn&lowbar;unused&lowbar;result&lowbar;&lowbar;&rsqb;&rsqb;
static
link:#nlohmann-basic_json-00[basic&lowbar;json]
parse(
    IteratorType first,
    IteratorType last,
    link:#nlohmann-basic_json-00-parser_callback_t[parser&lowbar;callback&lowbar;t] cb = nullptr,
    bool const allow&lowbar;exceptions = true,
    bool const ignore&lowbar;comments = false,
    bool const ignore&lowbar;trailing&lowbar;commas = false);
----

== Return Value

a class to store JSON values

== Parameters

[cols=2]
|===
| Name
| Description
| *cb*
| per&hyphen;element parser callback type
|===

generate SAX events

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename SAX&gt;
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;, &lowbar;&lowbar;nonnull&lowbar;&lowbar;&rsqb;&rsqb;
static
bool
sax&lowbar;parse(
    detail::span&lowbar;input&lowbar;adapter&& i,
    SAX* sax,
    link:#nlohmann-basic_json-00-input_format_t[input&lowbar;format&lowbar;t] format = input&lowbar;format&lowbar;t&colon;&colon;json,
    bool const strict = true,
    bool const ignore&lowbar;comments = false,
    bool const ignore&lowbar;trailing&lowbar;commas = false);
----

generate SAX events

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename InputType,
    typename SAX&gt;
&lsqb;&lsqb;&lowbar;&lowbar;nonnull&lowbar;&lowbar;&rsqb;&rsqb;
static
bool
sax&lowbar;parse(
    InputType&& i,
    SAX* sax,
    link:#nlohmann-basic_json-00-input_format_t[input&lowbar;format&lowbar;t] format = input&lowbar;format&lowbar;t&colon;&colon;json,
    bool const strict = true,
    bool const ignore&lowbar;comments = false,
    bool const ignore&lowbar;trailing&lowbar;commas = false);
----

generate SAX events

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class IteratorType,
    class SAX&gt;
&lsqb;&lsqb;&lowbar;&lowbar;nonnull&lowbar;&lowbar;&rsqb;&rsqb;
static
bool
sax&lowbar;parse(
    IteratorType first,
    IteratorType last,
    SAX* sax,
    link:#nlohmann-basic_json-00-input_format_t[input&lowbar;format&lowbar;t] format = input&lowbar;format&lowbar;t&colon;&colon;json,
    bool const strict = true,
    bool const ignore&lowbar;comments = false,
    bool const ignore&lowbar;trailing&lowbar;commas = false);
----

create a BJData serialization of a given JSON value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
std::vector&lt;uint8&lowbar;t&gt;
to&lowbar;bjdata(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    bool const use&lowbar;size = false,
    bool const use&lowbar;type = false,
    link:#nlohmann-basic_json-00-bjdata_version_t[bjdata&lowbar;version&lowbar;t] const version = bjdata&lowbar;version&lowbar;t&colon;&colon;draft2);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *j*
| a class to store JSON values
| *version*
| how to encode BJData
|===

create a BJData serialization of a given JSON value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
void
to&lowbar;bjdata(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    detail::output&lowbar;adapter&lt;uint8&lowbar;t&gt; o,
    bool const use&lowbar;size = false,
    bool const use&lowbar;type = false,
    link:#nlohmann-basic_json-00-bjdata_version_t[bjdata&lowbar;version&lowbar;t] const version = bjdata&lowbar;version&lowbar;t&colon;&colon;draft2);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *j*
| a class to store JSON values
| *version*
| how to encode BJData
|===

create a BJData serialization of a given JSON value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
void
to&lowbar;bjdata(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    detail::output&lowbar;adapter&lt;char&gt; o,
    bool const use&lowbar;size = false,
    bool const use&lowbar;type = false,
    link:#nlohmann-basic_json-00-bjdata_version_t[bjdata&lowbar;version&lowbar;t] const version = bjdata&lowbar;version&lowbar;t&colon;&colon;draft2);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *j*
| a class to store JSON values
| *version*
| how to encode BJData
|===

create a BSON serialization of a given JSON value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
std::vector&lt;uint8&lowbar;t&gt;
to&lowbar;bson(link:#nlohmann-basic_json-00[basic&lowbar;json] const& j);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *j*
| a class to store JSON values
|===

create a BSON serialization of a given JSON value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
void
to&lowbar;bson(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    detail::output&lowbar;adapter&lt;uint8&lowbar;t&gt; o);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *j*
| a class to store JSON values
|===

create a BSON serialization of a given JSON value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
void
to&lowbar;bson(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    detail::output&lowbar;adapter&lt;char&gt; o);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *j*
| a class to store JSON values
|===

create a CBOR serialization of a given JSON value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
std::vector&lt;uint8&lowbar;t&gt;
to&lowbar;cbor(link:#nlohmann-basic_json-00[basic&lowbar;json] const& j);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *j*
| a class to store JSON values
|===

create a CBOR serialization of a given JSON value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
void
to&lowbar;cbor(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    detail::output&lowbar;adapter&lt;uint8&lowbar;t&gt; o);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *j*
| a class to store JSON values
|===

create a CBOR serialization of a given JSON value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
void
to&lowbar;cbor(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    detail::output&lowbar;adapter&lt;char&gt; o);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *j*
| a class to store JSON values
|===

create a MessagePack serialization of a given JSON value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
std::vector&lt;uint8&lowbar;t&gt;
to&lowbar;msgpack(link:#nlohmann-basic_json-00[basic&lowbar;json] const& j);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *j*
| a class to store JSON values
|===

create a MessagePack serialization of a given JSON value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
void
to&lowbar;msgpack(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    detail::output&lowbar;adapter&lt;uint8&lowbar;t&gt; o);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *j*
| a class to store JSON values
|===

create a MessagePack serialization of a given JSON value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
void
to&lowbar;msgpack(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    detail::output&lowbar;adapter&lt;char&gt; o);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *j*
| a class to store JSON values
|===

create a UBJSON serialization of a given JSON value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
std::vector&lt;uint8&lowbar;t&gt;
to&lowbar;ubjson(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    bool const use&lowbar;size = false,
    bool const use&lowbar;type = false);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *j*
| a class to store JSON values
|===

create a UBJSON serialization of a given JSON value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
void
to&lowbar;ubjson(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    detail::output&lowbar;adapter&lt;uint8&lowbar;t&gt; o,
    bool const use&lowbar;size = false,
    bool const use&lowbar;type = false);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *j*
| a class to store JSON values
|===

create a UBJSON serialization of a given JSON value

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
static
void
to&lowbar;ubjson(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    detail::output&lowbar;adapter&lt;char&gt; o,
    bool const use&lowbar;size = false,
    bool const use&lowbar;type = false);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *j*
| a class to store JSON values
|===

an internal type for a backed binary type

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename BinaryType&gt;
class byte&lowbar;container&lowbar;with&lowbar;subtype
    : public BinaryType
----

== Base Classes

[cols=2]
|===
| Name
| Description
| `BinaryType`
| 
|===

== Types

[cols=1]
|===
| Name
| link:#nlohmann-byte_container_with_subtype-04-container_type[`container&lowbar;type`] 
| link:#nlohmann-byte_container_with_subtype-04-subtype_type[`subtype&lowbar;type`] 
|===

== Member Functions

[cols=2]
|===
| Name
| Description
| link:#nlohmann-byte_container_with_subtype-04-2constructor-05[`byte&lowbar;container&lowbar;with&lowbar;subtype`]         [.small]#[constructor]#
| Default constructor
| link:#nlohmann-byte_container_with_subtype-04-2constructor-0e[`byte&lowbar;container&lowbar;with&lowbar;subtype`]         [.small]#[constructor]#
| Construct from `container&lowbar;type`
| link:#nlohmann-byte_container_with_subtype-04-2constructor-01[`byte&lowbar;container&lowbar;with&lowbar;subtype`]         [.small]#[constructor]#
| Construct from `container&lowbar;type`
| link:#nlohmann-byte_container_with_subtype-04-2constructor-07[`byte&lowbar;container&lowbar;with&lowbar;subtype`]         [.small]#[constructor]#
| 
| link:#nlohmann-byte_container_with_subtype-04-2constructor-04[`byte&lowbar;container&lowbar;with&lowbar;subtype`]         [.small]#[constructor]#
| 
| link:#nlohmann-byte_container_with_subtype-04-clear_subtype[`clear&lowbar;subtype`] 
| clears the binary subtype
| link:#nlohmann-byte_container_with_subtype-04-has_subtype[`has&lowbar;subtype`] 
| return whether the value has a subtype
| link:#nlohmann-byte_container_with_subtype-04-set_subtype[`set&lowbar;subtype`] 
| sets the binary subtype
| link:#nlohmann-byte_container_with_subtype-04-subtype[`subtype`] 
| return the binary subtype
| link:#nlohmann-byte_container_with_subtype-04-operator_eq[`operator&equals;&equals;`] 
| Equality operator
| link:#nlohmann-byte_container_with_subtype-04-operator_not_eq[`operator!&equals;`] 
| Inequality operator
|===

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using container&lowbar;type = BinaryType;
----

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using subtype&lowbar;type = uint64&lowbar;t;
----

Default constructor

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
byte&lowbar;container&lowbar;with&lowbar;subtype() noexcept(noexcept(container&lowbar;type()));
----

Construct from `container&lowbar;type`

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
byte&lowbar;container&lowbar;with&lowbar;subtype(link:#nlohmann-byte_container_with_subtype-04-container_type[container&lowbar;type] const& b) noexcept(noexcept(container&lowbar;type(b)));
----

== Parameters

[cols=2]
|===
| Name
| Description
| *b*
| The object to copy construct from
|===

Construct from `container&lowbar;type`

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
byte&lowbar;container&lowbar;with&lowbar;subtype(link:#nlohmann-byte_container_with_subtype-04-container_type[container&lowbar;type]&& b) noexcept(noexcept(container&lowbar;type(std&colon;&colon;move(b))));
----

== Parameters

[cols=2]
|===
| Name
| Description
| *b*
| The object to move construct from
|===

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
byte&lowbar;container&lowbar;with&lowbar;subtype(
    link:#nlohmann-byte_container_with_subtype-04-container_type[container&lowbar;type] const& b,
    link:#nlohmann-byte_container_with_subtype-04-subtype_type[subtype&lowbar;type] subtype&lowbar;) noexcept(noexcept(container&lowbar;type(b)));
----

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
byte&lowbar;container&lowbar;with&lowbar;subtype(
    link:#nlohmann-byte_container_with_subtype-04-container_type[container&lowbar;type]&& b,
    link:#nlohmann-byte_container_with_subtype-04-subtype_type[subtype&lowbar;type] subtype&lowbar;) noexcept(noexcept(container&lowbar;type(std&colon;&colon;move(b))));
----

clears the binary subtype

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
clear&lowbar;subtype() noexcept;
----

return whether the value has a subtype

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
has&lowbar;subtype() const noexcept;
----

sets the binary subtype

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
set&lowbar;subtype(link:#nlohmann-byte_container_with_subtype-04-subtype_type[subtype&lowbar;type] subtype&lowbar;) noexcept;
----

return the binary subtype

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
link:#nlohmann-byte_container_with_subtype-04-subtype_type[subtype&lowbar;type]
subtype() const noexcept;
----

Equality operator

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
bool
operator&equals;&equals;(link:#nlohmann-byte_container_with_subtype-04[byte&lowbar;container&lowbar;with&lowbar;subtype] const& rhs) const;
----

== Return Value

`true` if the objects are equal, `false` otherwise

== Parameters

[cols=2]
|===
| Name
| Description
| *rhs*
| The right operand
|===

Inequality operator

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
bool
operator!&equals;(link:#nlohmann-byte_container_with_subtype-04[byte&lowbar;container&lowbar;with&lowbar;subtype] const& rhs) const;
----

== Return Value

`true` if the objects are not equal, `false` otherwise

== Parameters

[cols=2]
|===
| Name
| Description
| *rhs*
| The right operand
|===

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;&gt;
class link:#nlohmann-byte_container_with_subtype-04[byte&lowbar;container&lowbar;with&lowbar;subtype]&lt;vector&lt;unsigned char&gt;&gt;
    : public vector&lt;unsigned char&gt;
----

== Base Classes

[cols=2]
|===
| Name
| Description
| `vector&lt;unsigned char&gt;`
| 
|===

== Types

[cols=1]
|===
| Name
| link:#nlohmann-byte_container_with_subtype-09-container_type[`container&lowbar;type`] 
| link:#nlohmann-byte_container_with_subtype-09-subtype_type[`subtype&lowbar;type`] 
|===

== Member Functions

[cols=2]
|===
| Name
| Description
| link:#nlohmann-byte_container_with_subtype-09-2constructor-0a[`byte&lowbar;container&lowbar;with&lowbar;subtype`]         [.small]#[constructor]#
| Constructors
| link:#nlohmann-byte_container_with_subtype-09-clear_subtype[`clear&lowbar;subtype`] 
| 
| link:#nlohmann-byte_container_with_subtype-09-has_subtype[`has&lowbar;subtype`] 
| 
| link:#nlohmann-byte_container_with_subtype-09-set_subtype[`set&lowbar;subtype`] 
| 
| link:#nlohmann-byte_container_with_subtype-09-subtype[`subtype`] 
| 
| link:#nlohmann-byte_container_with_subtype-09-operator_eq[`operator&equals;&equals;`] 
| Equality operator
| link:#nlohmann-byte_container_with_subtype-09-operator_not_eq[`operator!&equals;`] 
| Inequality operator
|===

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using container&lowbar;type = vector&lt;unsigned char&gt;;
----

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using subtype&lowbar;type = uint64&lowbar;t;
----

Constructors

== Synopses

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

Default constructor


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-byte_container_with_subtype-09-2constructor-0f[byte&lowbar;container&lowbar;with&lowbar;subtype]() noexcept(noexcept(container&lowbar;type()));
----

[.small]#link:#nlohmann-byte_container_with_subtype-09-2constructor-0f[_» more&period;&period;&period;_]#

Construct from `container&lowbar;type`


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-byte_container_with_subtype-09-2constructor-01[byte&lowbar;container&lowbar;with&lowbar;subtype](link:#nlohmann-byte_container_with_subtype-09-container_type[container&lowbar;type] const& b) noexcept(noexcept(container&lowbar;type(b)));
----

[.small]#link:#nlohmann-byte_container_with_subtype-09-2constructor-01[_» more&period;&period;&period;_]#

Construct from `container&lowbar;type`


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-byte_container_with_subtype-09-2constructor-09[byte&lowbar;container&lowbar;with&lowbar;subtype](link:#nlohmann-byte_container_with_subtype-09-container_type[container&lowbar;type]&& b) noexcept(noexcept(container&lowbar;type(std&colon;&colon;move(b))));
----

[.small]#link:#nlohmann-byte_container_with_subtype-09-2constructor-09[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-byte_container_with_subtype-09-2constructor-0d[byte&lowbar;container&lowbar;with&lowbar;subtype](
    link:#nlohmann-byte_container_with_subtype-09-container_type[container&lowbar;type] const& b,
    link:#nlohmann-byte_container_with_subtype-04-subtype_type[subtype&lowbar;type] subtype&lowbar;) noexcept(noexcept(container&lowbar;type(b)));
----

[.small]#link:#nlohmann-byte_container_with_subtype-09-2constructor-0d[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-byte_container_with_subtype-09-2constructor-07[byte&lowbar;container&lowbar;with&lowbar;subtype](
    link:#nlohmann-byte_container_with_subtype-09-container_type[container&lowbar;type]&& b,
    link:#nlohmann-byte_container_with_subtype-04-subtype_type[subtype&lowbar;type] subtype&lowbar;) noexcept(noexcept(container&lowbar;type(std&colon;&colon;move(b))));
----

[.small]#link:#nlohmann-byte_container_with_subtype-09-2constructor-07[_» more&period;&period;&period;_]#

Default constructor

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
byte&lowbar;container&lowbar;with&lowbar;subtype() noexcept(noexcept(container&lowbar;type()));
----

Construct from `container&lowbar;type`

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
byte&lowbar;container&lowbar;with&lowbar;subtype(link:#nlohmann-byte_container_with_subtype-09-container_type[container&lowbar;type] const& b) noexcept(noexcept(container&lowbar;type(b)));
----

== Parameters

[cols=2]
|===
| Name
| Description
| *b*
| The object to copy construct from
|===

Construct from `container&lowbar;type`

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
byte&lowbar;container&lowbar;with&lowbar;subtype(link:#nlohmann-byte_container_with_subtype-09-container_type[container&lowbar;type]&& b) noexcept(noexcept(container&lowbar;type(std&colon;&colon;move(b))));
----

== Parameters

[cols=2]
|===
| Name
| Description
| *b*
| The object to move construct from
|===

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
byte&lowbar;container&lowbar;with&lowbar;subtype(
    link:#nlohmann-byte_container_with_subtype-09-container_type[container&lowbar;type] const& b,
    link:#nlohmann-byte_container_with_subtype-04-subtype_type[subtype&lowbar;type] subtype&lowbar;) noexcept(noexcept(container&lowbar;type(b)));
----

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
byte&lowbar;container&lowbar;with&lowbar;subtype(
    link:#nlohmann-byte_container_with_subtype-09-container_type[container&lowbar;type]&& b,
    link:#nlohmann-byte_container_with_subtype-04-subtype_type[subtype&lowbar;type] subtype&lowbar;) noexcept(noexcept(container&lowbar;type(std&colon;&colon;move(b))));
----

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
clear&lowbar;subtype() noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
bool
has&lowbar;subtype() const noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
set&lowbar;subtype(link:#nlohmann-byte_container_with_subtype-04-subtype_type[subtype&lowbar;type] subtype&lowbar;) noexcept;
----

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
constexpr
link:#nlohmann-byte_container_with_subtype-04-subtype_type[subtype&lowbar;type]
subtype() const noexcept;
----

Equality operator

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
bool
operator&equals;&equals;(link:#nlohmann-byte_container_with_subtype-04[byte&lowbar;container&lowbar;with&lowbar;subtype&lt;vector&lt;unsigned char&gt;&gt;] const& rhs) const;
----

== Return Value

`true` if the objects are equal, `false` otherwise

== Parameters

[cols=2]
|===
| Name
| Description
| *rhs*
| The right operand
|===

Inequality operator

== Synopsis

Declared in `&lt;nlohmann&sol;byte&lowbar;container&lowbar;with&lowbar;subtype&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
bool
operator!&equals;(link:#nlohmann-byte_container_with_subtype-04[byte&lowbar;container&lowbar;with&lowbar;subtype&lt;vector&lt;unsigned char&gt;&gt;] const& rhs) const;
----

== Return Value

`true` if the objects are not equal, `false` otherwise

== Parameters

[cols=2]
|===
| Name
| Description
| *rhs*
| The right operand
|===

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename&gt;
class json&lowbar;pointer;
----

JSON Pointer defines a string syntax for identifying a specific value within a JSON document

== Synopsis

Declared in `&lt;nlohmann&sol;json&lowbar;fwd&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename RefStringType&gt;
class json&lowbar;pointer;
----

== Friends

[cols=2]
|===
| Name
| Description
| `nlohmann::operator&sol;`
| create a new JSON pointer by appending the array&hyphen;index&hyphen;token at the end of the JSON pointer
| `nlohmann::operator&sol;`
| create a new JSON pointer by appending the unescaped token at the end of the JSON pointer
| `nlohmann::operator&sol;`
| create a new JSON pointer by appending the right JSON pointer at the end of the left JSON pointer
| `nlohmann::operator&lt;&lt;`
| write string representation of the JSON pointer to stream
| `nlohmann::json&lowbar;pointer`
| JSON Pointer defines a string syntax for identifying a specific value within a JSON document
| `link:#nlohmann-basic_json-00[nlohmann::basic&lowbar;json]`
| a class to store JSON values
|===

a minimal map&hyphen;like container that preserves insertion order

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    class Key,
    class T,
    class IgnoredLess,
    class Allocator&gt;
struct ordered&lowbar;map
    : std::vector&lt;std::pair&lt;Key const, T&gt;, Allocator&gt;
----

== Base Classes

[cols=2]
|===
| Name
| Description
| `std::vector&lt;std::pair&lt;Key const, T&gt;, Allocator&gt;`
| 
|===

== Types

[cols=1]
|===
| Name
| link:#nlohmann-ordered_map-Container[`Container`] 
| link:#nlohmann-ordered_map-const_iterator[`const&lowbar;iterator`] 
| link:#nlohmann-ordered_map-iterator[`iterator`] 
| link:#nlohmann-ordered_map-key_compare[`key&lowbar;compare`] 
| link:#nlohmann-ordered_map-key_type[`key&lowbar;type`] 
| link:#nlohmann-ordered_map-mapped_type[`mapped&lowbar;type`] 
| link:#nlohmann-ordered_map-require_input_iter[`require&lowbar;input&lowbar;iter`] 
| link:#nlohmann-ordered_map-size_type[`size&lowbar;type`] 
| link:#nlohmann-ordered_map-value_type[`value&lowbar;type`] 
|===

== Member Functions

[cols=2]
|===
| Name
| Description
| link:#nlohmann-ordered_map-2constructor-0c[`ordered&lowbar;map`]         [.small]#[constructor]#
| Constructors
| link:#nlohmann-ordered_map-at-00[`at`] 
| 
| link:#nlohmann-ordered_map-count-0b[`count`] 
| 
| link:#nlohmann-ordered_map-emplace-0e[`emplace`] 
| 
| link:#nlohmann-ordered_map-erase-08[`erase`] 
| 
| link:#nlohmann-ordered_map-find-033[`find`] 
| 
| link:#nlohmann-ordered_map-insert-02c[`insert`] 
| 
| link:#nlohmann-ordered_map-operator_subs-08[`operator&lsqb;&rsqb;`] 
| Subscript operators
|===

== Description

ordered&lowbar;map&colon; a minimal map&hyphen;like container that preserves insertion order for use within nlohmann&colon;&colon;basic&lowbar;json&lt;ordered&lowbar;map&gt;

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using Container = std::vector&lt;std::pair&lt;Key const, T&gt;, Allocator&gt;;
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using const&lowbar;iterator = Container::const&lowbar;iterator;
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using iterator = Container::iterator;
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using key&lowbar;compare = std::equal&lowbar;to;
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using key&lowbar;type = Key;
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using mapped&lowbar;type = T;
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;typename InputIt&gt;
using require&lowbar;input&lowbar;iter = void;
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using size&lowbar;type = Container::size&lowbar;type;
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using value&lowbar;type = Container::value&lowbar;type;
----

Constructors

== Synopses

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

Default constructor


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-ordered_map-2constructor-08[ordered&lowbar;map]() noexcept(noexcept(Container()));
----

[.small]#link:#nlohmann-ordered_map-2constructor-08[_» more&period;&period;&period;_]#

Construct from `Allocator`


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
explicit
link:#nlohmann-ordered_map-2constructor-03[ordered&lowbar;map](Allocator const& alloc) noexcept(noexcept(Container(alloc)));
----

[.small]#link:#nlohmann-ordered_map-2constructor-03[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-ordered_map-2constructor-0f[ordered&lowbar;map](
    std::initializer&lowbar;list&lt;value&lowbar;type&gt; init,
    Allocator const& alloc = Allocator());
----

[.small]#link:#nlohmann-ordered_map-2constructor-0f[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class It&gt;
link:#nlohmann-ordered_map-2constructor-0d[ordered&lowbar;map](
    It first,
    It last,
    Allocator const& alloc = Allocator());
----

[.small]#link:#nlohmann-ordered_map-2constructor-0d[_» more&period;&period;&period;_]#

Default constructor

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
ordered&lowbar;map() noexcept(noexcept(Container()));
----

Construct from `Allocator`

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
explicit
ordered&lowbar;map(Allocator const& alloc) noexcept(noexcept(Container(alloc)));
----

== Parameters

[cols=2]
|===
| Name
| Description
| *alloc*
| The object to copy construct from
|===

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
ordered&lowbar;map(
    std::initializer&lowbar;list&lt;value&lowbar;type&gt; init,
    Allocator const& alloc = Allocator());
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class It&gt;
ordered&lowbar;map(
    It first,
    It last,
    Allocator const& alloc = Allocator());
----

== Synopses

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
T&
link:#nlohmann-ordered_map-at-07[at](link:#nlohmann-ordered_map-key_type[key&lowbar;type] const& key);
----

[.small]#link:#nlohmann-ordered_map-at-07[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
T const&
link:#nlohmann-ordered_map-at-09[at](link:#nlohmann-ordered_map-key_type[key&lowbar;type] const& key) const;
----

[.small]#link:#nlohmann-ordered_map-at-09[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;key&lowbar;type&lt;key&lowbar;compare, key&lowbar;type, KeyType&gt;&colon;&colon;value
T&
link:#nlohmann-ordered_map-at-0d7[at](KeyType&& key);
----

[.small]#link:#nlohmann-ordered_map-at-0d7[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;key&lowbar;type&lt;key&lowbar;compare, key&lowbar;type, KeyType&gt;&colon;&colon;value
T const&
link:#nlohmann-ordered_map-at-0db[at](KeyType&& key) const;
----

[.small]#link:#nlohmann-ordered_map-at-0db[_» more&period;&period;&period;_]#

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
T&
at(link:#nlohmann-ordered_map-key_type[key&lowbar;type] const& key);
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
T const&
at(link:#nlohmann-ordered_map-key_type[key&lowbar;type] const& key) const;
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;key&lowbar;type&lt;key&lowbar;compare, key&lowbar;type, KeyType&gt;&colon;&colon;value
T&
at(KeyType&& key);
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;key&lowbar;type&lt;key&lowbar;compare, key&lowbar;type, KeyType&gt;&colon;&colon;value
T const&
at(KeyType&& key) const;
----

== Synopses

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-ordered_map-size_type[size&lowbar;type]
link:#nlohmann-ordered_map-count-04[count](link:#nlohmann-ordered_map-key_type[key&lowbar;type] const& key) const;
----

[.small]#link:#nlohmann-ordered_map-count-04[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;key&lowbar;type&lt;key&lowbar;compare, key&lowbar;type, KeyType&gt;&colon;&colon;value
link:#nlohmann-ordered_map-size_type[size&lowbar;type]
link:#nlohmann-ordered_map-count-0c[count](KeyType&& key) const;
----

[.small]#link:#nlohmann-ordered_map-count-0c[_» more&period;&period;&period;_]#

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-ordered_map-size_type[size&lowbar;type]
count(link:#nlohmann-ordered_map-key_type[key&lowbar;type] const& key) const;
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;key&lowbar;type&lt;key&lowbar;compare, key&lowbar;type, KeyType&gt;&colon;&colon;value
link:#nlohmann-ordered_map-size_type[size&lowbar;type]
count(KeyType&& key) const;
----

== Synopses

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::pair&lt;iterator, bool&gt;
link:#nlohmann-ordered_map-emplace-00[emplace](
    link:#nlohmann-ordered_map-key_type[key&lowbar;type] const& key,
    T&& t);
----

[.small]#link:#nlohmann-ordered_map-emplace-00[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;key&lowbar;type&lt;key&lowbar;compare, key&lowbar;type, KeyType&gt;&colon;&colon;value
std::pair&lt;iterator, bool&gt;
link:#nlohmann-ordered_map-emplace-01[emplace](
    KeyType&& key,
    T&& t);
----

[.small]#link:#nlohmann-ordered_map-emplace-01[_» more&period;&period;&period;_]#

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::pair&lt;iterator, bool&gt;
emplace(
    link:#nlohmann-ordered_map-key_type[key&lowbar;type] const& key,
    T&& t);
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;key&lowbar;type&lt;key&lowbar;compare, key&lowbar;type, KeyType&gt;&colon;&colon;value
std::pair&lt;iterator, bool&gt;
emplace(
    KeyType&& key,
    T&& t);
----

== Synopses

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-ordered_map-iterator[iterator]
link:#nlohmann-ordered_map-erase-0f[erase](link:#nlohmann-ordered_map-iterator[iterator] pos);
----

[.small]#link:#nlohmann-ordered_map-erase-0f[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-ordered_map-size_type[size&lowbar;type]
link:#nlohmann-ordered_map-erase-03[erase](link:#nlohmann-ordered_map-key_type[key&lowbar;type] const& key);
----

[.small]#link:#nlohmann-ordered_map-erase-03[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;key&lowbar;type&lt;key&lowbar;compare, key&lowbar;type, KeyType&gt;&colon;&colon;value
link:#nlohmann-ordered_map-size_type[size&lowbar;type]
link:#nlohmann-ordered_map-erase-0e[erase](KeyType&& key);
----

[.small]#link:#nlohmann-ordered_map-erase-0e[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-ordered_map-iterator[iterator]
link:#nlohmann-ordered_map-erase-0a[erase](
    link:#nlohmann-ordered_map-iterator[iterator] first,
    link:#nlohmann-ordered_map-iterator[iterator] last);
----

[.small]#link:#nlohmann-ordered_map-erase-0a[_» more&period;&period;&period;_]#

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-ordered_map-iterator[iterator]
erase(link:#nlohmann-ordered_map-iterator[iterator] pos);
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-ordered_map-size_type[size&lowbar;type]
erase(link:#nlohmann-ordered_map-key_type[key&lowbar;type] const& key);
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;key&lowbar;type&lt;key&lowbar;compare, key&lowbar;type, KeyType&gt;&colon;&colon;value
link:#nlohmann-ordered_map-size_type[size&lowbar;type]
erase(KeyType&& key);
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-ordered_map-iterator[iterator]
erase(
    link:#nlohmann-ordered_map-iterator[iterator] first,
    link:#nlohmann-ordered_map-iterator[iterator] last);
----

== Synopses

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-ordered_map-iterator[iterator]
link:#nlohmann-ordered_map-find-04[find](link:#nlohmann-ordered_map-key_type[key&lowbar;type] const& key);
----

[.small]#link:#nlohmann-ordered_map-find-04[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-ordered_map-const_iterator[const&lowbar;iterator]
link:#nlohmann-ordered_map-find-00[find](link:#nlohmann-ordered_map-key_type[key&lowbar;type] const& key) const;
----

[.small]#link:#nlohmann-ordered_map-find-00[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;key&lowbar;type&lt;key&lowbar;compare, key&lowbar;type, KeyType&gt;&colon;&colon;value
link:#nlohmann-ordered_map-iterator[iterator]
link:#nlohmann-ordered_map-find-03e[find](KeyType&& key);
----

[.small]#link:#nlohmann-ordered_map-find-03e[_» more&period;&period;&period;_]#

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-ordered_map-iterator[iterator]
find(link:#nlohmann-ordered_map-key_type[key&lowbar;type] const& key);
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-ordered_map-const_iterator[const&lowbar;iterator]
find(link:#nlohmann-ordered_map-key_type[key&lowbar;type] const& key) const;
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;key&lowbar;type&lt;key&lowbar;compare, key&lowbar;type, KeyType&gt;&colon;&colon;value
link:#nlohmann-ordered_map-iterator[iterator]
find(KeyType&& key);
----

== Synopses

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::pair&lt;iterator, bool&gt;
link:#nlohmann-ordered_map-insert-026[insert](link:#nlohmann-ordered_map-value_type[value&lowbar;type] const& value);
----

[.small]#link:#nlohmann-ordered_map-insert-026[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::pair&lt;iterator, bool&gt;
link:#nlohmann-ordered_map-insert-0e[insert](link:#nlohmann-ordered_map-value_type[value&lowbar;type]&& value);
----

[.small]#link:#nlohmann-ordered_map-insert-0e[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename InputIt,
    typename = link:#nlohmann-ordered_map-require_input_iter[require&lowbar;input&lowbar;iter&lt;InputIt&gt;]&gt;
void
link:#nlohmann-ordered_map-insert-0c[insert](
    InputIt first,
    InputIt last);
----

[.small]#link:#nlohmann-ordered_map-insert-0c[_» more&period;&period;&period;_]#

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::pair&lt;iterator, bool&gt;
insert(link:#nlohmann-ordered_map-value_type[value&lowbar;type] const& value);
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::pair&lt;iterator, bool&gt;
insert(link:#nlohmann-ordered_map-value_type[value&lowbar;type]&& value);
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    typename InputIt,
    typename = link:#nlohmann-ordered_map-require_input_iter[require&lowbar;input&lowbar;iter&lt;InputIt&gt;]&gt;
void
insert(
    InputIt first,
    InputIt last);
----

Subscript operators

== Synopses

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
T&
link:#nlohmann-ordered_map-operator_subs-07[operator&lsqb;&rsqb;](link:#nlohmann-ordered_map-key_type[key&lowbar;type] const& key);
----

[.small]#link:#nlohmann-ordered_map-operator_subs-07[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
T const&
link:#nlohmann-ordered_map-operator_subs-04[operator&lsqb;&rsqb;](link:#nlohmann-ordered_map-key_type[key&lowbar;type] const& key) const;
----

[.small]#link:#nlohmann-ordered_map-operator_subs-04[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;key&lowbar;type&lt;key&lowbar;compare, key&lowbar;type, KeyType&gt;&colon;&colon;value
T&
link:#nlohmann-ordered_map-operator_subs-06[operator&lsqb;&rsqb;](KeyType&& key);
----

[.small]#link:#nlohmann-ordered_map-operator_subs-06[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;key&lowbar;type&lt;key&lowbar;compare, key&lowbar;type, KeyType&gt;&colon;&colon;value
T const&
link:#nlohmann-ordered_map-operator_subs-0f[operator&lsqb;&rsqb;](KeyType&& key) const;
----

[.small]#link:#nlohmann-ordered_map-operator_subs-0f[_» more&period;&period;&period;_]#

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
T&
operator&lsqb;&rsqb;(link:#nlohmann-ordered_map-key_type[key&lowbar;type] const& key);
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
T const&
operator&lsqb;&rsqb;(link:#nlohmann-ordered_map-key_type[key&lowbar;type] const& key) const;
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;key&lowbar;type&lt;key&lowbar;compare, key&lowbar;type, KeyType&gt;&colon;&colon;value
T&
operator&lsqb;&rsqb;(KeyType&& key);
----

== Synopsis

Declared in `&lt;nlohmann&sol;ordered&lowbar;map&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class KeyType&gt;
requires detail&colon;&colon;is&lowbar;usable&lowbar;as&lowbar;key&lowbar;type&lt;key&lowbar;compare, key&lowbar;type, KeyType&gt;&colon;&colon;value
T const&
operator&lsqb;&rsqb;(KeyType&& key) const;
----

== Synopses

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;nonnull&lowbar;&lowbar;&rsqb;&rsqb;
link:#nlohmann-json[nlohmann::json]
link:#nlohmann-2function-04[Unnamed function](
    char const* s,
    std::size&lowbar;t n);
----

[.small]#link:#nlohmann-2function-04[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;nonnull&lowbar;&lowbar;&rsqb;&rsqb;
link:#nlohmann-basic_json-0e-json_pointer[nlohmann::json::json&lowbar;pointer]
link:#nlohmann-2function-0b[Unnamed function](
    char const* s,
    std::size&lowbar;t n);
----

[.small]#link:#nlohmann-2function-0b[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;nonnull&lowbar;&lowbar;&rsqb;&rsqb;
link:#nlohmann-json[nlohmann::json]
link:#nlohmann-2function-00[Unnamed function](
    char8&lowbar;t const* s,
    std::size&lowbar;t n);
----

[.small]#link:#nlohmann-2function-00[_» more&period;&period;&period;_]#


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-json_pointer[nlohmann::json::json&lowbar;pointer]
link:#nlohmann-2function-0f[Unnamed function](
    char8&lowbar;t const* s,
    std::size&lowbar;t n);
----

[.small]#link:#nlohmann-2function-0f[_» more&period;&period;&period;_]#

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;nonnull&lowbar;&lowbar;&rsqb;&rsqb;
link:#nlohmann-json[nlohmann::json]
Unnamed function(
    char const* s,
    std::size&lowbar;t n);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;nonnull&lowbar;&lowbar;&rsqb;&rsqb;
link:#nlohmann-basic_json-0e-json_pointer[nlohmann::json::json&lowbar;pointer]
Unnamed function(
    char const* s,
    std::size&lowbar;t n);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;nonnull&lowbar;&lowbar;&rsqb;&rsqb;
link:#nlohmann-json[nlohmann::json]
Unnamed function(
    char8&lowbar;t const* s,
    std::size&lowbar;t n);
----

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
link:#nlohmann-basic_json-0e-json_pointer[nlohmann::json::json&lowbar;pointer]
Unnamed function(
    char8&lowbar;t const* s,
    std::size&lowbar;t n);
----

Right shift operators

== Synopses

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

deserialize from stream


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::istream&
link:#nlohmann-operator_rshift-0e[operator&gt;&gt;](
    std::istream& i,
    link:#nlohmann-basic_json-00[basic&lowbar;json]& j);
----

[.small]#link:#nlohmann-operator_rshift-0e[_» more&period;&period;&period;_]#

deserialize from stream


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::istream&
link:#nlohmann-operator_rshift-02[operator&gt;&gt;](
    std::istream& i,
    link:#nlohmann-basic_json-00[basic&lowbar;json]& j);
----

[.small]#link:#nlohmann-operator_rshift-02[_» more&period;&period;&period;_]#

serialize to stream


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
std::ostream&
link:#nlohmann-operator_rshift-0d[operator&gt;&gt;](
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    std::ostream& o);
----

[.small]#link:#nlohmann-operator_rshift-0d[_» more&period;&period;&period;_]#

serialize to stream


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
std::ostream&
link:#nlohmann-operator_rshift-08[operator&gt;&gt;](
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    std::ostream& o);
----

[.small]#link:#nlohmann-operator_rshift-08[_» more&period;&period;&period;_]#

deserialize from stream

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::istream&
operator&gt;&gt;(
    std::istream& i,
    link:#nlohmann-basic_json-00[basic&lowbar;json]& j);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *i*
| The left operand
| *j*
| The right operand
|===

deserialize from stream

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::istream&
operator&gt;&gt;(
    std::istream& i,
    link:#nlohmann-basic_json-00[basic&lowbar;json]& j);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *i*
| The left operand
| *j*
| The right operand
|===

serialize to stream

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
std::ostream&
operator&gt;&gt;(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    std::ostream& o);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *j*
| The left operand
| *o*
| The right operand
|===

serialize to stream

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
std::ostream&
operator&gt;&gt;(
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j,
    std::ostream& o);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *j*
| The left operand
| *o*
| The right operand
|===

exchanges the values

== Synopses

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

exchanges the values


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
link:#nlohmann-swap-05[swap](
    link:#nlohmann-basic_json-0e-reference[reference] left,
    link:#nlohmann-basic_json-0e-reference[reference] right) noexcept(std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;constructible&lt;value&lowbar;t&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;assignable&lt;value&lowbar;t&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;constructible&lt;json&lowbar;value&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;assignable&lt;json&lowbar;value&gt;&colon;&colon;value);
----

[.small]#link:#nlohmann-swap-05[_» more&period;&period;&period;_]#

exchanges the values


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
link:#nlohmann-swap-03[swap](
    link:#nlohmann-basic_json-00-reference[reference] left,
    link:#nlohmann-basic_json-00-reference[reference] right) noexcept(std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;constructible&lt;value&lowbar;t&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;assignable&lt;value&lowbar;t&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;constructible&lt;json&lowbar;value&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;assignable&lt;json&lowbar;value&gt;&colon;&colon;value);
----

[.small]#link:#nlohmann-swap-03[_» more&period;&period;&period;_]#

exchanges the values

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
swap(
    link:#nlohmann-basic_json-0e-reference[reference] left,
    link:#nlohmann-basic_json-0e-reference[reference] right) noexcept(std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;constructible&lt;value&lowbar;t&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;assignable&lt;value&lowbar;t&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;constructible&lt;json&lowbar;value&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;assignable&lt;json&lowbar;value&gt;&colon;&colon;value);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *left*
| the type of an element reference
| *right*
| the type of an element reference
|===

exchanges the values

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
void
swap(
    link:#nlohmann-basic_json-00-reference[reference] left,
    link:#nlohmann-basic_json-00-reference[reference] right) noexcept(std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;constructible&lt;value&lowbar;t&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;assignable&lt;value&lowbar;t&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;constructible&lt;json&lowbar;value&gt;&colon;&colon;value &amp;&amp; std&colon;&colon;is&lowbar;nothrow&lowbar;move&lowbar;assignable&lt;json&lowbar;value&gt;&colon;&colon;value);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *left*
| the type of an element reference
| *right*
| the type of an element reference
|===

user&hyphen;defined to&lowbar;string function for JSON values

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;
    template&lt;
    typename,
    typename,
    typename&period;&period;&period;&gt; typename ObjectType,
    template&lt;
    typename,
    typename&period;&period;&period;&gt; typename ArrayType,
    class StringType,
    class BooleanType,
    class NumberIntegerType,
    class NumberUnsignedType,
    class NumberFloatType,
    template&lt;typename&gt; typename AllocatorType,
    template&lt;
    typename,
    typename = void&gt; typename JSONSerializer,
    class BinaryType,
    class CustomBaseClass&gt;
std::string
to&lowbar;string(link:#nlohmann-basic_json-00[basic&lowbar;json&lt;ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType, CustomBaseClass&gt;] const& j);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *j*
| a class to store JSON values
|===

Left shift operators

== Synopses

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

deserialize from stream


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
std::istream&
link:#nlohmann-operator_lshift-07[operator&lt;&lt;](
    link:#nlohmann-basic_json-00[basic&lowbar;json]& j,
    std::istream& i);
----

[.small]#link:#nlohmann-operator_lshift-07[_» more&period;&period;&period;_]#

serialize to stream


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::ostream&
link:#nlohmann-operator_lshift-03[operator&lt;&lt;](
    std::ostream& o,
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j);
----

[.small]#link:#nlohmann-operator_lshift-03[_» more&period;&period;&period;_]#

write string representation of the JSON pointer to stream


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::ostream&
operator&lt;&lt;(
    std::ostream& o,
    link:#nlohmann-json_pointer-0a[json&lowbar;pointer] const& ptr);
----

[.small]#[_» more&period;&period;&period;_]#

deserialize from stream


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
std::istream&
link:#nlohmann-operator_lshift-053[operator&lt;&lt;](
    link:#nlohmann-basic_json-00[basic&lowbar;json]& j,
    std::istream& i);
----

[.small]#link:#nlohmann-operator_lshift-053[_» more&period;&period;&period;_]#

serialize to stream


[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::ostream&
link:#nlohmann-operator_lshift-01[operator&lt;&lt;](
    std::ostream& o,
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j);
----

[.small]#link:#nlohmann-operator_lshift-01[_» more&period;&period;&period;_]#

deserialize from stream

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
std::istream&
operator&lt;&lt;(
    link:#nlohmann-basic_json-00[basic&lowbar;json]& j,
    std::istream& i);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *j*
| The left operand
| *i*
| The right operand
|===

serialize to stream

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::ostream&
operator&lt;&lt;(
    std::ostream& o,
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j);
----

== Return Value

Reference to the current output stream

== Parameters

[cols=2]
|===
| Name
| Description
| *o*
| An output stream
| *j*
| The object to output
|===

deserialize from stream

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
&lsqb;&lsqb;&lowbar;&lowbar;deprecated&lowbar;&lowbar;&rsqb;&rsqb;
std::istream&
operator&lt;&lt;(
    link:#nlohmann-basic_json-00[basic&lowbar;json]& j,
    std::istream& i);
----

== Parameters

[cols=2]
|===
| Name
| Description
| *j*
| The left operand
| *i*
| The right operand
|===

serialize to stream

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
std::ostream&
operator&lt;&lt;(
    std::ostream& o,
    link:#nlohmann-basic_json-00[basic&lowbar;json] const& j);
----

== Return Value

Reference to the current output stream

== Parameters

[cols=2]
|===
| Name
| Description
| *o*
| An output stream
| *j*
| The object to output
|===

== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using nlohmann::literals::json&lowbar;literals::;
----

== Introduced Symbols

[cols=1]
|===
| Name
| link:#_10using-0a-2function[::]
|===
== Synopsis

Declared in `&lt;nlohmann&sol;json&period;hpp&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
using nlohmann::literals::json&lowbar;literals::;
----

== Introduced Symbols

[cols=1]
|===
| Name
| link:#_10using-0e-2function[::]
|===

[.small]#Created with https://www.mrdocs.com[MrDocs]#
