![]() |
Home | Libraries | People | FAQ | More |
boost::typeindex::type_index_facade
// In header: <boost/type_index/type_index_facade.hpp> template<typename Derived, typename TypeInfo> class type_index_facade { public: // types typedef ; // public member functions () ; () ; () ; () ; () ; // protected member functions () ; () ; // protected static functions template<typename T> () ; template<typename T> () ; template<typename T> () ; };
This class takes care about the comparison operators, hash functions and ostream operators. Use this class as a public base class for defining new type_info-conforming classes.
Example:
![]() |
Note |
---|---|
Take a look at the protected methods. They are not defined in type_index_facade. Protected member functions raw_name() must be defined in Derived class. All the other methods are mandatory. |
See Also:
'Making a custom type_index' section for more information about creating your own type_index using type_index_facade.
typename Derived
Class derived from type_index_facade
.
typename TypeInfo
Class that will be used as a base type_info class.
type_index_facade
public member functions() ;
Override: This function may be redefined in Derived class. Overrides must not throw.
Returns: |
Name of a type. By default returns Derived::raw_name(). |
() ;
Override: This function may be redefined in Derived class. Overrides may throw.
Returns: |
Human readable type name. By default returns Derived::name(). |
( rhs) ;
Override: This function may be redefined in Derived class. Overrides must not throw.
Returns: |
True if two types are equal. By default compares types by raw_name(). |
( rhs) ;
Override: This function may be redefined in Derived class. Overrides must not throw.
Returns: |
True if rhs is greater than this. By default compares types by raw_name(). |
() ;
Override: This function may be redefined in Derived class. Overrides must not throw.
![]() |
Note |
---|---|
Derived class header must include <boost/container_hash/hash.hpp>, unless this function is redefined in Derived class to not use boost::hash_range(). |
Returns: |
Hash code of a type. By default hashes types by raw_name(). |
type_index_facade
protected static functionstemplate<typename T> () ;
This is a factory method that is used to create instances of Derived classes. boost::typeindex::type_id() will call this method, if Derived has same type as boost::typeindex::type_index.
Override: This function may be redefined and made public in Derived class. Overrides must not throw. Overrides must remove const, volatile && and & modifiers from T.
Template Parameters: |
|
||
Returns: |
type_index for type T. |
template<typename T> () ;
This is a factory method that is used to create instances of Derived classes. boost::typeindex::type_id_with_cvr() will call this method, if Derived has same type as boost::typeindex::type_index.
Override: This function may be redefined and made public in Derived class. Overrides must not throw. Overrides must not remove const, volatile && and & modifiers from T.
Template Parameters: |
|
||
Returns: |
type_index for type T. |
template<typename T> ( variable) ;
This is a factory method that is used to create instances of Derived classes. boost::typeindex::type_id_runtime(const T&) will call this method, if Derived has same type as boost::typeindex::type_index.
Override: This function may be redefined and made public in Derived class.
Parameters: |
|
||
Returns: |
type_index with runtime type of variable. |