...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Includes minimal set of headers required to use the Boost.TypeIndex library.
By inclusion of this file most optimal type index classes will be included and used as a boost::typeindex::type_index and boost::typeindex::type_info.
BOOST_TYPE_INDEX_REGISTER_CLASS BOOST_TYPE_INDEX_FUNCTION_SIGNATURE BOOST_TYPE_INDEX_CTTI_USER_DEFINED_PARSING BOOST_TYPE_INDEX_USER_TYPEINDEX BOOST_TYPE_INDEX_FORCE_NO_RTTI_COMPATIBILITY
namespace boost { namespace typeindex { typedef platform_specific type_index; typedef type_index::type_info_t type_info; template<typename T> type_index type_id(); template<typename T> type_index type_id_with_cvr(); template<typename T> type_index type_id_runtime(const T &); } }
Contains boost::typeindex::ctti_type_index class.
boost::typeindex::ctti_type_index class can be used as a drop-in replacement for std::type_index.
It is used in situations when typeid() method is not available or BOOST_TYPE_INDEX_FORCE_NO_RTTI_COMPATIBILITY macro is defined.
namespace boost { namespace typeindex { class ctti_type_index; // Helper method for getting detail::ctti_data of a tempalte patameter T. template<typename T> unspecified ctti_construct(); } }
Contains boost::typeindex::stl_type_index class.
boost::typeindex::stl_type_index class can be used as a drop-in replacement for std::type_index.
It is used in situations when RTTI is enabled or typeid() method is available. When typeid() is disabled or BOOST_TYPE_INDEX_FORCE_NO_RTTI_COMPATIBILITY macro is defined boost::typeindex::ctti is usually used instead of boost::typeindex::stl_type_index.
namespace boost { namespace typeindex { class stl_type_index; } }
namespace boost { namespace typeindex { template<typename Derived, typename TypeInfo> class type_index_facade; // noexcept comparison operators for type_index_facade classes. bool operator==,!=,<,...(const type_index_facade & lhs, const type_index_facade & rhs); // noexcept comparison operators for type_index_facade and it's TypeInfo classes. bool operator==,!=,<,...(const type_index_facade & lhs, const TypeInfo & rhs); // noexcept comparison operators for type_index_facade's TypeInfo and type_index_facade classes. bool operator==,!=,<,...(const TypeInfo & lhs, const type_index_facade & rhs); // Ostream operator that will output demangled name. template<typename CharT, typename TriatT, typename Derived, typename TypeInfo> std::basic_ostream< CharT, TriatT > & operator<<(std::basic_ostream< CharT, TriatT > & ostr, const type_index_facade< Derived, TypeInfo > & ind); template<typename Derived, typename TypeInfo> std::size_t hash_value(const type_index_facade< Derived, TypeInfo > &); } }