|
JSON for Modern C++
3.0.1
|
◆ number_unsigned_t
template<template< typename, typename, typename... > class ObjectType = std::map, template< typename, typename... > 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 > class AllocatorType = std::allocator, template< typename, typename=void > class JSONSerializer = adl_serializer>
RFC 7159 describes numbers as follows:
This description includes both integer and floating-point numbers. However, C++ allows more precise storage if it is known whether the number is a signed integer, an unsigned integer or a floating-point number. Therefore, three different types, number_integer_t, number_unsigned_t and number_float_t are used. To store unsigned integer numbers in C++, a type is defined by the template parameter NumberUnsignedType which chooses the type to use. Default typeWith the default values for NumberUnsignedType ( uint64_t Default behavior
LimitsRFC 7159 specifies:
When the default type is used, the maximal integer number that can be stored is RFC 7159 further states:
As this range is a subrange (when considered in conjunction with the number_integer_t type) of the exactly supported range [0, UINT64_MAX], this class's integer type is interoperable. StorageInteger number values are stored directly inside a basic_json type.
|
1.8.15