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::rebind_any< Any, T > Struct Template Reference

A metafunction that changes the placeholder of an any. More...

#include <rebind_any.hpp>

Public Types

typedef ::boost::mpl::if_
< ::boost::type_erasure::is_placeholder
< typename::boost::remove_cv
< typename::boost::remove_reference
< T >::type >::type >
,::boost::type_erasure::any
< typename::boost::type_erasure::concept_of
< Any >::type, T >, T >::type 
type
 

Detailed Description

template<class Any, class T>
struct boost::type_erasure::rebind_any< Any, T >

A metafunction that changes the placeholder of an any.

If T is not a placeholder, returns T unchanged. This class is intended to be used in concept_interface to deduce the argument types from the arguments of the concept.

Precondition
Any must be a specialization of any or a base class of such a specialization.
rebind_any<any<Concept>, _a>::type -> any<Concept, _a>
rebind_any<any<Concept>, _b&>::type -> any<Concept, _b&>
rebind_any<any<Concept>, int>::type -> int
See also
derived, as_param

Member Typedef Documentation

template<class Any, class T>
typedef ::boost::mpl::if_< ::boost::type_erasure::is_placeholder< typename ::boost::remove_cv< typename ::boost::remove_reference<T>::type >::type >, ::boost::type_erasure::any< typename ::boost::type_erasure::concept_of<Any>::type, T >, T >::type boost::type_erasure::rebind_any< Any, T >::type

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