Qpid Proton C++ API 0.40.0
 
Loading...
Searching...
No Matches
value

A holder for any AMQP value, simple or complex. More...

#include <value.hpp>

Inheritance diagram for value:

Public Member Functions

 value ()
 Create a null value.
 
template<class T >
 value (const T &x, typename assignable< T >::type *=0)
 Copy from any allowed type T.
 
template<class T >
assignable< T, value & >::type operator= (const T &x)
 Assign from any allowed type T.
 
type_id type () const
 Get the type ID for the current value.
 
bool empty () const
 True if the value is null.
 
void clear ()
 Reset the value to null/empty.
 
Copy a value
 value (const value &)
 
valueoperator= (const value &)
 
 value (value &&)
 
valueoperator= (value &&)
 

Friends

void swap (value &, value &)
 swap values
 
std::ostream & operator<< (std::ostream &, const value &)
 If contained value is a scalar type T, print using operator<<(T)
 
Comparison operators
bool operator== (const value &x, const value &y)
 
bool operator< (const value &x, const value &y)
 

Related Symbols

(Note that these are not member symbols.)

template<class T >
get (const value &v)
 Get a contained value of type T.
 
template<class T >
void get (const value &v, T &x)
 Like get(const value&) but extracts the value to a reference x instead of returning it.
 
template<class T , class U >
void get (const U &u, T &x)
 
template<class T >
coerce (const value &v)
 Coerce the contained value to type T.
 
template<class T >
void coerce (const value &v, T &x)
 Like coerce(const value&) but assigns the value to a reference instead of returning it.
 

Detailed Description

A holder for any AMQP value, simple or complex.

See also
AMQP and C++ types
Examples
service_bus.cpp.

Friends And Related Symbol Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream &  ,
const value  
)
friend

If contained value is a scalar type T, print using operator<<(T)

Complex types are printed in a non-standard human-readable format but that may change in future so should not be parsed.

◆ get() [1/2]

template<class T >
T get ( const value v)
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.

Exceptions
conversion_errorif contained value is not of type T.

◆ get() [2/2]

template<class T >
void get ( const value v,
T &  x 
)
related

Like get(const value&) but extracts the value to a reference x instead of returning it.

May be more efficient for complex values (arrays, maps, etc.)

◆ coerce() [1/2]

template<class T >
T coerce ( const value v)
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.

Exceptions
conversion_errorif the value cannot be converted to T according to std::is_convertible

◆ coerce() [2/2]

template<class T >
void coerce ( const value v,
T &  x 
)
related

Like coerce(const value&) but assigns the value to a reference instead of returning it.

May be more efficient for complex values (arrays, maps, etc.)


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