...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::any — A class whose instances can hold instances of any type that satisfies ValueType requirements.
class any { public: // construct/copy/destruct any(); any(const any &); template<typename ValueType> any(const ValueType &); any & operator=(const any &); template<typename ValueType> any & operator=(const ValueType &); ~any(); // modifiers any & swap(any &); // queries bool empty() const; const std::type_info & type() const; };
any
construct/copy/destructany();
Postconditions:
this->empty()
any(const any & other);
Effects:
Copy constructor that copies content of
other
into new instance, so that any content
is equivalent in both type and value to the content of
other
, or empty if other
is
empty.
Throws:
May fail with a
std::bad_alloc
exception or any exceptions arising from the copy
constructor of the contained type.
template<typename ValueType> any(const ValueType & value);
Effects:
Makes a copy of value
, so
that the initial content of the new instance is equivalent
in both type and value to
value
.
Throws:
std::bad_alloc
or any exceptions arising from the copy constructor of the
contained type.
any & operator=(const any & rhs);
Effects:
Copies content of rhs
into
current instance, discarding previous content, so that the
new content is equivalent in both type and value to the
content of rhs
, or empty if
rhs.empty()
.
Throws:
std::bad_alloc
or any exceptions arising from the copy constructor of the
contained type. Assignment satisfies the strong guarantee
of exception safety.
template<typename ValueType> any & operator=(const ValueType & rhs);
Effects:
Makes a copy of rhs
,
discarding previous content, so that the new content of is
equivalent in both type and value to
rhs
.
Throws:
std::bad_alloc
or any exceptions arising from the copy constructor of the
contained type. Assignment satisfies the strong guarantee
of exception safety.
~any();
Effects:
Releases any and all resources used in
management of instance.
Throws:
Nothing.
any
queriesbool empty() const;
Returns:
true
if instance is
empty, otherwise false
.
Throws:
Will not throw.
const std::type_info & type() const;
Returns:
the typeid
of the
contained value if instance is non-empty, otherwise
typeid(void)
.
Notes:
Useful for querying against types known
either at compile time or only at
runtime.
Copyright © 2001 Kevlin Henney |