A key for use with AMQP annotation maps. More...
#include <annotation_key.hpp>
Public Member Functions | |
annotation_key ()=default | |
An empty annotation key. | |
template<class T > | |
annotation_key (const T &x) | |
Construct from any type that can be assigned. | |
Assign from a uint64_t or symbol. | |
annotation_key & | operator= (uint64_t x) |
annotation_key & | operator= (const symbol &x) |
Extra conversions for strings, treated as codec::SYMBOL. | |
annotation_key & | operator= (const std::string &x) |
annotation_key & | operator= (const char *x) |
Public Member Functions inherited from scalar_base | |
type_id | type () const |
AMQP type of data stored in the scalar. | |
bool | empty () const |
True if there is no value, i.e. type() == NULL_TYPE. | |
Related Symbols | |
(Note that these are not member symbols.) | |
template<> | |
uint64_t | get (const annotation_key &x) |
Get the uint64_t value or throw conversion_error. | |
template<> | |
symbol | get (const annotation_key &x) |
Get the symbol value or throw conversion_error. | |
template<class T > | |
T | coerce (const annotation_key &x) |
Get the binary value or throw conversion_error. | |
A key for use with AMQP annotation maps.
An annotation_key can contain either a uint64_t or a proton::symbol.
|
related |
Get the binary value or throw conversion_error.
Coerce the contained value to type T.
For example:
uint64_t i = coerce<uint64_t>(x)
This will succeed if x contains any numeric value, but may lose precision if it contains a float or double value.
conversion_error | if the value cannot be converted to T according to std::is_convertible |