nlohmann::byte_container_with_subtype< BinaryType > Class Template Reference

an internal type for a backed binary type More...

`#include <json.hpp>`

Inheritance diagram for nlohmann::byte_container_with_subtype< BinaryType >:
Collaboration diagram for nlohmann::byte_container_with_subtype< BinaryType >:

## Public Types

using | container_type = BinaryType
| the type of the underlying container More...

## Public Member Functions

| byte_container_with_subtype () noexcept(noexcept(container_type()))
| byte_container_with_subtype (const container_type &b) noexcept(noexcept(container_type(b)))
| byte_container_with_subtype (container_type &&b) noexcept(noexcept(container_type(std::move(b))))
| byte_container_with_subtype (const container_type &b, std::uint8_t subtype_) noexcept(noexcept(container_type(b)))
| byte_container_with_subtype (container_type &&b, std::uint8_t subtype_) noexcept(noexcept(container_type(std::move(b))))
bool | operator== (const byte_container_with_subtype &rhs) const
bool | operator!= (const byte_container_with_subtype &rhs) const
void | set_subtype (std::uint8_t subtype_) noexcept
| sets the binary subtype More...
constexpr std::uint8_t | subtype () const noexcept
| return the binary subtype More...
constexpr bool | has_subtype () const noexcept
| return whether the value has a subtype More...
void | clear_subtype () noexcept
| clears the binary subtype More...

## Private Attributes

std::uint8_t | m_subtype = 0
bool | m_has_subtype = false

## Detailed Description

### template<typename BinaryType>
class nlohmann::byte_container_with_subtype< BinaryType >

an internal type for a backed binary type

This type extends the template parameter BinaryType provided to `basic_json` with a subtype used by BSON and MessagePack. This type exists so that the user does not have to specify a type themselves with a specific naming scheme in order to override the binary type.

Template Parameters

  BinaryType | container to store bytes (`std::vector<std::uint8_t>` by default)

Since
  version 3.8.0

Definition at line 4933 of file json.hpp.

## Member Typedef Documentation

## container_type

template<typename BinaryType >

using nlohmann::byte_container_with_subtype< BinaryType >::container_type = BinaryType

the type of the underlying container

Definition at line 4937 of file json.hpp.

## Constructor & Destructor Documentation

## byte_container_with_subtype() [1/5]

template<typename BinaryType >

nlohmann::byte_container_with_subtype< BinaryType >::byte_container_with_subtype | ( |  | ) |

inline noexcept

Definition at line 4939 of file json.hpp.

## byte_container_with_subtype() [2/5]

template<typename BinaryType >

nlohmann::byte_container_with_subtype< BinaryType >::byte_container_with_subtype | ( | const container_type & | b | ) |

inline noexcept

Definition at line 4943 of file json.hpp.

## byte_container_with_subtype() [3/5]

template<typename BinaryType >

nlohmann::byte_container_with_subtype< BinaryType >::byte_container_with_subtype | ( | container_type && | b | ) |

inline noexcept

Definition at line 4947 of file json.hpp.

## byte_container_with_subtype() [4/5]

template<typename BinaryType >

nlohmann::byte_container_with_subtype< BinaryType >::byte_container_with_subtype | ( | const container_type & | b,
|  | std::uint8_t | subtype_
| ) |  |

inline noexcept

Definition at line 4951 of file json.hpp.

## byte_container_with_subtype() [5/5]

template<typename BinaryType >

nlohmann::byte_container_with_subtype< BinaryType >::byte_container_with_subtype | ( | container_type && | b,
|  | std::uint8_t | subtype_
| ) |  |

inline noexcept

Definition at line 4957 of file json.hpp.

## Member Function Documentation

## clear_subtype()

template<typename BinaryType >

void nlohmann::byte_container_with_subtype< BinaryType >::clear_subtype | ( |  | ) |

inline noexcept

clears the binary subtype

Clears the binary subtype and flags the value as not having a subtype, which has implications for serialization; for instance MessagePack will prefer the bin family over the ext family.

Constant.

No-throw guarantee: this member function never throws exceptions.

See also
  see subtype() – return the binary subtype
  see set_subtype() – sets the binary subtype
  see has_subtype() – returns whether or not the binary value has a subtype

Since
  version 3.8.0

Definition at line 5064 of file json.hpp.

## has_subtype()

template<typename BinaryType >

constexpr bool nlohmann::byte_container_with_subtype< BinaryType >::has_subtype | ( |  | ) | const

inline noexcept

return whether the value has a subtype

Returns
  whether the value has a subtype

Constant.

No-throw guarantee: this member function never throws exceptions.

See also
  see subtype() – return the binary subtype
  see set_subtype() – sets the binary subtype
  see clear_subtype() – clears the binary subtype

Since
  version 3.8.0

Definition at line 5040 of file json.hpp.

## operator!=()

template<typename BinaryType >

bool nlohmann::byte_container_with_subtype< BinaryType >::operator!= | ( | const byte_container_with_subtype< BinaryType > & | rhs | ) | const

inline

Definition at line 4969 of file json.hpp.

## operator==()

template<typename BinaryType >

bool nlohmann::byte_container_with_subtype< BinaryType >::operator== | ( | const byte_container_with_subtype< BinaryType > & | rhs | ) | const

inline

Definition at line 4963 of file json.hpp.

References nlohmann::byte_container_with_subtype< BinaryType >::m_has_subtype, and nlohmann::byte_container_with_subtype< BinaryType >::m_subtype.

## set_subtype()

template<typename BinaryType >

void nlohmann::byte_container_with_subtype< BinaryType >::set_subtype | ( | std::uint8_t | subtype_ | ) |

inline noexcept

sets the binary subtype

Sets the binary subtype of the value, also flags a binary JSON value as having a subtype, which has implications for serialization.

Constant.

No-throw guarantee: this member function never throws exceptions.

See also
  see subtype() – return the binary subtype
  see clear_subtype() – clears the binary subtype
  see has_subtype() – returns whether or not the binary value has a subtype

Since
  version 3.8.0

Definition at line 4992 of file json.hpp.

## subtype()

template<typename BinaryType >

constexpr std::uint8_t nlohmann::byte_container_with_subtype< BinaryType >::subtype | ( |  | ) | const

inline noexcept

return the binary subtype

Returns the numerical subtype of the value if it has a subtype. If it does not have a subtype, this function will return size_t(-1) as a sentinel value.

Returns
  the numerical subtype of the binary value

Constant.

No-throw guarantee: this member function never throws exceptions.

See also
  see set_subtype() – sets the binary subtype
  see clear_subtype() – clears the binary subtype
  see has_subtype() – returns whether or not the binary value has a subtype

Since
  version 3.8.0

Definition at line 5019 of file json.hpp.

## Member Data Documentation

## m_has_subtype

template<typename BinaryType >

bool nlohmann::byte_container_with_subtype< BinaryType >::m_has_subtype = false

private

Definition at line 5072 of file json.hpp.

Referenced by nlohmann::byte_container_with_subtype< BinaryType >::operator==().

## m_subtype

template<typename BinaryType >

std::uint8_t nlohmann::byte_container_with_subtype< BinaryType >::m_subtype = 0

private

Definition at line 5071 of file json.hpp.

Referenced by nlohmann::byte_container_with_subtype< BinaryType >::operator==().

The documentation for this class was generated from the following file:

- json.hpp