Union basic_json::json_value

Nested Relationships

This union is a nested type of Template Class basic_json.

Union Documentation

union json_value

a JSON value

The actual storage for a JSON value of the basic_json class. This union combines the different storage types for the JSON value types defined in value_t.

JSON type

value_t type

used type

object

object

pointer to object_t

array

array

pointer to array_t

string

string

pointer to string_t

boolean

boolean

boolean_t

number

number_integer

number_integer_t

number

number_unsigned

number_unsigned_t

number

number_float

number_float_t

null

null

no value is stored

The actual storage for a JSON value of the basic_json class. This union combines the different storage types for the JSON value types defined in value_t.

Since

version 1.0.0

JSON type

value_t type

used type

object

object

pointer to object_t

array

array

pointer to array_t

string

string

pointer to string_t

boolean

boolean

boolean_t

number

number_integer

number_integer_t

number

number_unsigned

number_unsigned_t

number

number_float

number_float_t

binary

binary

pointer to binary_t

null

null

no value is stored

Since

version 1.0.0

Note

Variable-length types (objects, arrays, and strings) are stored as pointers. The size of the union should not exceed 64 bits if the default value types are used.

Note

Variable-length types (objects, arrays, and strings) are stored as pointers. The size of the union should not exceed 64 bits if the default value types are used.

Public Functions

json_value() = default

default constructor (for null values)

inline json_value(boolean_t v) noexcept

constructor for booleans

inline json_value(number_integer_t v) noexcept

constructor for numbers (integer)

inline json_value(number_unsigned_t v) noexcept

constructor for numbers (unsigned)

inline json_value(number_float_t v) noexcept

constructor for numbers (floating-point)

inline json_value(value_t t)

constructor for empty values of a given type

inline json_value(const string_t &value)

constructor for strings

inline json_value(string_t &&value)

constructor for rvalue strings

inline json_value(const object_t &value)

constructor for objects

inline json_value(object_t &&value)

constructor for rvalue objects

inline json_value(const array_t &value)

constructor for arrays

inline json_value(array_t &&value)

constructor for rvalue arrays

inline void destroy(value_t t) noexcept
json_value() = default

default constructor (for null values)

inline json_value(boolean_t v) noexcept

constructor for booleans

inline json_value(number_integer_t v) noexcept

constructor for numbers (integer)

inline json_value(number_unsigned_t v) noexcept

constructor for numbers (unsigned)

inline json_value(number_float_t v) noexcept

constructor for numbers (floating-point)

inline json_value(value_t t)

constructor for empty values of a given type

inline json_value(const string_t &value)

constructor for strings

inline json_value(string_t &&value)

constructor for rvalue strings

inline json_value(const object_t &value)

constructor for objects

inline json_value(object_t &&value)

constructor for rvalue objects

inline json_value(const array_t &value)

constructor for arrays

inline json_value(array_t &&value)

constructor for rvalue arrays

inline json_value(const typename binary_t::container_type &value)

constructor for binary arrays

inline json_value(typename binary_t::container_type &&value)

constructor for rvalue binary arrays

inline json_value(const binary_t &value)

constructor for binary arrays (internal type)

inline json_value(binary_t &&value)

constructor for rvalue binary arrays (internal type)

inline void destroy(value_t t) noexcept

Public Members

object_t *object

object (stored with pointer to save storage)

array_t *array

array (stored with pointer to save storage)

string_t *string

string (stored with pointer to save storage)

boolean_t boolean

boolean

number_integer_t number_integer

number (integer)

number_unsigned_t number_unsigned

number (unsigned integer)

number_float_t number_float

number (floating-point)

binary_t *binary

binary (stored with pointer to save storage)