TerraForge3D  2.3.1
3D Terrain And Landscape Generator

◆ max_size()

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 {
22994 case value_t::array:
22995 {
22996 // delegate call to array_t::max_size()
22997 return m_value.array->max_size();
22998 }
22999
23000 case value_t::object:
23001 {
23002 // delegate call to object_t::max_size()
23003 return m_value.object->max_size();
23004 }
23005
23006 case value_t::null:
23007 case value_t::string:
23008 case value_t::boolean:
23012 case value_t::binary:
23013 case value_t::discarded:
23014 default:
23015 {
23016 // all other types have max_size() == size()
23017 return size();
23018 }
23019 }
23020 }
size_type size() const noexcept
returns the number of elements
Definition: json.hpp:22912
json_value m_value
the value of the current element
Definition: json.hpp:24928
@ 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)