template<template< typename U, typename V, typename... Args > class ObjectType = std::map, template< typename U, typename... Args > class ArrayType = std::vector, class StringType = std::string, class BooleanType = bool, class NumberIntegerType = std::int64_t, class NumberUnsignedType = std::uint64_t, class NumberFloatType = double, template< typename U > class AllocatorType = std::allocator, template< typename T, typename SFINAE=void > class JSONSerializer = adl_serializer, class BinaryType = std::vector<std::uint8_t>>
size_type nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType >::max_size |
( |
| ) |
const |
|
inlinenoexcept |
returns the maximum possible number of elements
Returns the maximum number of elements a JSON value is able to hold due to system or library implementation limitations, i.e. std::distance(begin(), end())
for the JSON value.
- Returns
- The return value depends on the different types and is defined as follows:
Value type | return value |
null | 0 (same as size() ) |
boolean | 1 (same as size() ) |
string | 1 (same as size() ) |
number | 1 (same as size() ) |
binary | 1 (same as size() ) |
object | result of function object_t::max_size() |
array | result of function array_t::max_size() |
@liveexample{The following code calls max_size()
on the different value types. Note the output is implementation specific.,max_size}
@complexity Constant, as long as array_t and object_t satisfy the Container concept; that is, their max_size()
functions have constant complexity.
@iterators No changes.
@exceptionsafety No-throw guarantee: this function never throws exceptions.
@requirement This function helps basic_json
satisfying the Container requirements:
- The complexity is constant.
- Has the semantics of returning
b.size()
where b
is the largest possible JSON value.
- See also
- see size() – returns the number of elements
- Since
- version 1.0.0
Definition at line 22990 of file json.hpp.
22991 {
22992 switch (m_type)
22993 {
22995 {
22996
22997 return m_value.array->max_size();
22998 }
22999
23001 {
23002
23003 return m_value.object->max_size();
23004 }
23005
23014 default:
23015 {
23016
23018 }
23019 }
23020 }
size_type size() const noexcept
returns the number of elements
json_value m_value
the value of the current element
@ number_integer
number value (signed integer)
@ discarded
discarded by the parser callback function
@ binary
binary array (ordered collection of bytes)
@ object
object (unordered set of name/value pairs)
@ number_float
number value (floating-point)
@ number_unsigned
number value (unsigned integer)
@ array
array (ordered collection of values)