[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]
Any Class Reference |
Typesafe storage of arbitrary values. More...
#include <vigra/any.hxx>
Public Member Functions | |
Any () | |
template<class T > | |
Any (T const &t) | |
Any (Any const &other) | |
void | destroy () |
bool | empty () const |
template<class T > | |
T & | get () |
template<class T > | |
T const & | get () const |
template<class T > | |
bool | is_readable () const |
template<class T > | |
bool | is_type () const |
operator bool () const | |
bool | operator!= (Any const &other) const |
template<class T > | |
Any & | operator= (T const &t) |
Any & | operator= (Any const &other) |
bool | operator== (Any const &other) const |
template<class T > | |
T | read () const |
void | swap (Any &other) |
Friends | |
void | swap (Any &l, Any &r) |
Typesafe storage of arbitrary values.
Items are always stored by value, but it is of course possible to store pointers and smart pointers.
Usage:
Any& operator= | ( | T const & | t | ) |
Assign the given value to this 'Any' object (overwrites the old value, regardless of types).
Assign a copy of other's value to this 'Any' object (overwrites the old value, regardless of types).
void destroy | ( | ) |
Delete the contained object (make this 'Any' object empty).
void swap | ( | Any & | other | ) |
Exchange the value of this object with other's.
bool operator== | ( | Any const & | other | ) | const |
Check if this object contains the same type and value as other. Also true if both 'Any' objects are empty.
bool operator!= | ( | Any const & | other | ) | const |
Check if this object differs from other by type or value.
operator bool | ( | ) | const |
Convert 'Any' to false
if this object is empty, true
otherwise.
bool empty | ( | ) | const |
Check if this object is empty (holds no value).
bool is_type | ( | ) | const |
Check if this object holds a value of the given type.
bool is_readable | ( | ) | const |
Check if this object's value is convertible to the given type. At present, this only succeeds if T
matches the stored type exactly or is an arithmetic type convertible from the stored type.
T& get | ( | ) |
Read-write access to the contained value. This throws an exception if the types don't match.
T const& get | ( | ) | const |
Read-only access to the contained value. This throws an exception if the types don't match.
T read | ( | ) | const |
By-value access to the stored value. This throws an exception if the stored type doesn't match T
and T
is not an arithmetic type.
© Ullrich Köthe (ullrich.koethe@iwr.uni-heidelberg.de) |
html generated using doxygen and Python
|