...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::type_erasure::any<Concept, T &>
// In header: <boost/type_erasure/any.hpp> template<typename Concept, typename T> class any<Concept, T &> { public: // construct/copy/destruct template<typename U> any(U &); template<typename U, typename Map> any(U &, const static_binding< Map > &); any(const any &); any(any< Concept, T > &); template<typename Concept2, typename Tag2> any(const any< Concept2, Tag2 & > &); template<typename Concept2, typename Tag2> any(any< Concept2, Tag2 > &); template<typename Concept2, typename Tag2, typename Map> any(const any< Concept2, Tag2 & > &, const static_binding< Map > &); template<typename Concept2, typename Tag2, typename Map> any(any< Concept2, Tag2 > &, const static_binding< Map > &); template<typename Concept2, typename Tag2> any(const any< Concept2, Tag2 & > &, const binding< Concept > &); template<typename Concept2, typename Tag2> any(any< Concept2, Tag2 > &, const binding< Concept > &); template<typename U> any & operator=(U &&); };
any
public
construct/copy/destructtemplate<typename U> any(U & arg);
Constructs an any
from a reference.
Parameters: |
|
||
Requires: |
|
||
Requires: |
|
||
Throws: |
Nothing. |
template<typename U, typename Map> any(U & arg, const static_binding< Map > & binding);
Constructs an any
from a reference.
Parameters: |
|
||||
Requires: |
|
||||
Requires: |
|
||||
Throws: |
Nothing. |
any(const any & other);
Constructs an any
from another reference.
Parameters: |
|
||
Throws: |
Nothing. |
any(any< Concept, T > & other);
Constructs an any
from another any
.
Parameters: |
|
||
Throws: |
Nothing. |
template<typename Concept2, typename Tag2> any(const any< Concept2, Tag2 & > & other);
Constructs an any
from another reference.
Parameters: |
|
||
Requires: |
|
||
Requires: |
After substituting |
||
Throws: |
std::bad_alloc |
template<typename Concept2, typename Tag2> any(any< Concept2, Tag2 > & other);
Constructs an any
from another any
.
Parameters: |
|
||
Requires: |
|
||
Requires: |
After substituting |
||
Throws: |
std::bad_alloc |
template<typename Concept2, typename Tag2, typename Map> any(const any< Concept2, Tag2 & > & other, const static_binding< Map > & binding);
Constructs an any
from another reference.
Parameters: |
|
||||
Requires: |
|
||||
Requires: |
After substituting placeholders according to |
||||
Throws: |
std::bad_alloc |
template<typename Concept2, typename Tag2, typename Map> any(any< Concept2, Tag2 > & other, const static_binding< Map > & binding);
Constructs an any
from another any
.
Parameters: |
|
||||
Requires: |
|
||||
Requires: |
After substituting placeholders according to |
||||
Throws: |
std::bad_alloc |
template<typename Concept2, typename Tag2> any(const any< Concept2, Tag2 & > & other, const binding< Concept > & binding);
Constructs an any
from another reference.
Parameters: |
|
||||
Requires: |
The type stored in |
||||
Postconditions: |
binding_of(*this) == |
||||
Throws: |
Nothing. |
template<typename Concept2, typename Tag2> any(any< Concept2, Tag2 > & other, const binding< Concept > & binding);
Constructs an any
from another any
.
Parameters: |
|
||||
Requires: |
The type stored in |
||||
Postconditions: |
binding_of(*this) == |
||||
Throws: |
Nothing. |
template<typename U> any & operator=(U && other);
Assigns to an any
.
If an appropriate overload of assignable
is not available and relaxed
is in Concept
, falls back on constructing from other
.
Throws: |
Whatever the assignment operator of the contained type throws. When falling back on construction, can only throw std::bad_alloc if U is an any that uses a different Concept . In this case assignment provides the strong exception guarantee. When calling the assignment operator of the contained type, the exception guarantee is whatever the contained type provides. |