Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::type_erasure::any< Concept, const T & > Class Template Reference

#include <any.hpp>

Inheritance diagram for boost::type_erasure::any< Concept, const T & >:
Collaboration diagram for boost::type_erasure::any< Concept, const T & >:

Public Types

typedef Concept _boost_type_erasure_concept_type
 INTERNAL ONLY. More...
 

Public Member Functions

 any (const ::boost::type_erasure::detail::storage &data_arg, const table_type &table_arg)
 INTERNAL ONLY. More...
 
template<class U >
 any (const U &arg)
 Constructs an any from a reference. More...
 
template<class U , class Map >
 any (const U &arg, const static_binding< Map > &binding_arg)
 Constructs an any from a reference. More...
 
 any (const any &other)
 Constructs an any from another any. More...
 
 any (const any< Concept, T & > &other)
 Constructs an any from another any. More...
 
 any (const any< Concept, T > &other)
 Constructs an any from another any. More...
 
 any (const any< Concept, T && > &other)
 Constructs an any from another any. More...
 
template<class Concept2 , class Tag2 >
 any (const any< Concept2, Tag2 > &other, typename::boost::disable_if< ::boost::is_same< Concept, Concept2 > >::type *=0)
 Constructs an any from another any. More...
 
template<class Concept2 , class Tag2 , class Map >
 any (const any< Concept2, Tag2 > &other, const static_binding< Map > &binding_arg)
 Constructs an any from another any. More...
 
template<class Concept2 , class Tag2 >
 any (const any< Concept2, Tag2 > &other, const binding< Concept > &binding_arg)
 Constructs an any from another any. More...
 
anyoperator= (const any &other)
 Assigns to an any. More...
 
template<class U >
anyoperator= (const U &other)
 Assigns to an any. More...
 
 operator param< Concept, const T & > () const
 INTERNAL ONLY. More...
 

Friends

struct ::boost::type_erasure::detail::access
 

Member Typedef Documentation

template<class Concept , class T >
typedef Concept boost::type_erasure::any< Concept, const T & >::_boost_type_erasure_concept_type

INTERNAL ONLY.

Constructor & Destructor Documentation

template<class Concept , class T >
boost::type_erasure::any< Concept, const T & >::any ( const ::boost::type_erasure::detail::storage &  data_arg,
const table_type table_arg 
)
inline

INTERNAL ONLY.

template<class Concept , class T >
template<class U >
boost::type_erasure::any< Concept, const T & >::any ( const U &  arg)
inline

Constructs an any from a reference.

Parameters
argThe object to bind the reference to.
Precondition
U is a model of Concept.
Concept must not refer to any non-deduced placeholder besides T.
Exceptions
Nothing.

References boost::addressof(), and boost::proto::envns_::data.

template<class Concept , class T >
template<class U , class Map >
boost::type_erasure::any< Concept, const T & >::any ( const U &  arg,
const static_binding< Map > &  binding_arg 
)
inline

Constructs an any from a reference.

Parameters
argThe object to bind the reference to.
bindingSpecifies the actual types that all the placeholders should bind to.
Precondition
U is a model of Concept.
Map is an MPL map with an entry for every non-deduced placeholder referred to by Concept.
Exceptions
Nothing.

References boost::addressof(), BOOST_MPL_ASSERT, boost::proto::envns_::data, and boost::detail::type.

template<class Concept , class T >
boost::type_erasure::any< Concept, const T & >::any ( const any< Concept, const T & > &  other)
inline

Constructs an any from another any.

Parameters
otherThe reference to copy.
Exceptions
Nothing.
template<class Concept , class T >
boost::type_erasure::any< Concept, const T & >::any ( const any< Concept, T & > &  other)
inline

Constructs an any from another any.

Parameters
otherThe reference to copy.
Exceptions
Nothing.
template<class Concept , class T >
boost::type_erasure::any< Concept, const T & >::any ( const any< Concept, T > &  other)
inline

Constructs an any from another any.

Parameters
otherThe object to bind the reference to.
Exceptions
Nothing.
template<class Concept , class T >
boost::type_erasure::any< Concept, const T & >::any ( const any< Concept, T && > &  other)
inline

Constructs an any from another any.

Parameters
otherThe object to bind the reference to.
Exceptions
Nothing.
template<class Concept , class T >
template<class Concept2 , class Tag2 >
boost::type_erasure::any< Concept, const T & >::any ( const any< Concept2, Tag2 > &  other,
typename::boost::disable_if< ::boost::is_same< Concept, Concept2 > >::type = 0 
)
inline

Constructs an any from another any.

Parameters
otherThe object to bind the reference to.
Precondition
Concept must not refer to any non-deduced placeholder besides T.
After substituting T for Tag2, the requirements of Concept2 must be a superset of the requirements of Concept.
Exceptions
std::bad_alloc
template<class Concept , class T >
template<class Concept2 , class Tag2 , class Map >
boost::type_erasure::any< Concept, const T & >::any ( const any< Concept2, Tag2 > &  other,
const static_binding< Map > &  binding_arg 
)
inline

Constructs an any from another any.

Parameters
otherThe object to bind the reference to.
bindingSpecifies the mapping between the two concepts.
Precondition
Map must be an MPL map with keys for all the non-deduced placeholders used by Concept and values for the corresponding placeholders in Concept2.
After substituting placeholders according to Map, the requirements of Concept2 must be a superset of the requirements of Concept.
Exceptions
std::bad_alloc
template<class Concept , class T >
template<class Concept2 , class Tag2 >
boost::type_erasure::any< Concept, const T & >::any ( const any< Concept2, Tag2 > &  other,
const binding< Concept > &  binding_arg 
)
inline

Constructs an any from another any.

Parameters
otherThe object to bind the reference to.
bindingSpecifies the bindings of placeholders to actual types.
Precondition
The type stored in other must match the type expected by binding.
Postcondition
binding_of(*this) == binding
Exceptions
Nothing.

Member Function Documentation

template<class Concept , class T >
boost::type_erasure::any< Concept, const T & >::operator param< Concept, const T & > ( ) const
inline

INTERNAL ONLY.

References boost::proto::envns_::data.

template<class Concept , class T >
any& boost::type_erasure::any< Concept, const T & >::operator= ( const any< Concept, const T & > &  other)
inline

Assigns to an any.

Precondition
relaxed is in Concept.
Exceptions
Nothing.

References BOOST_MPL_ASSERT.

template<class Concept , class T >
template<class U >
any& boost::type_erasure::any< Concept, const T & >::operator= ( const U &  other)
inline

Assigns to an any.

Precondition
relaxed is in Concept.
Exceptions
std::bad_alloc.Provides the strong exception guarantee.

References BOOST_MPL_ASSERT.

Friends And Related Function Documentation

template<class Concept , class T >
friend struct ::boost::type_erasure::detail::access
friend

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