A holder for an instance of any scalar AMQP type. More...
#include <scalar.hpp>
Public Member Functions | |
scalar () | |
Create an empty scalar. | |
template<class T > | |
scalar (const T &x) | |
Construct from any scalar type. | |
template<class T > | |
scalar & | operator= (const T &x) |
Assign from any scalar type. | |
void | clear () |
Clear the scalar, making it empty(). | |
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. | |
Friends | |
bool | operator< (const scalar_base &x, const scalar_base &y) |
Compare. | |
bool | operator== (const scalar_base &x, const scalar_base &y) |
Compare. | |
std::ostream & | operator<< (std::ostream &o, const scalar_base &x) |
Print the contained value. | |
Related Functions | |
(Note that these are not member functions.) | |
template<class T > | |
T | get (const scalar &s) |
Get a contained value of type T. | |
template<class T > | |
T | coerce (const scalar &x) |
Coerce the contained value to type T. | |
template<class T > | |
T | coerce (scalar &x) |
Coerce the contained value to type T. |
A holder for an instance of any scalar AMQP type.
T get | ( | const scalar & | s | ) | [related] |
Get a contained value of type T.
For example:
uint64_t i = get<uint64_t>(x)
This will succeed if and only if x contains a uint64_t value.
conversion_error | if contained value is not of type T. |
T coerce | ( | const scalar & | x | ) | [related] |
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 `stdis_convertible` |
T coerce | ( | scalar & | x | ) | [related] |
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 `stdis_convertible` |