Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Boost.TypeIndex Header Reference

Header <boost/type_index.hpp>
Header <boost/type_index/ctti_type_index.hpp>
Header <boost/type_index/runtime_cast.hpp>
Header <boost/type_index/runtime_cast/boost_shared_ptr_cast.hpp>
Header <boost/type_index/runtime_cast/pointer_cast.hpp>
Header <boost/type_index/runtime_cast/reference_cast.hpp>
Header <boost/type_index/runtime_cast/register_runtime_class.hpp>
Header <boost/type_index/runtime_cast/std_shared_ptr_cast.hpp>
Header <boost/type_index/stl_type_index.hpp>
Header <boost/type_index/type_index_facade.hpp>

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

  
    typedef  ;
    typedef  ;
    template<typename T>  ();
    template<typename T>  ();
    template<typename T>  ();
  }
}

Contains boost::typeindex::ctti_type_index class that is constexpr if C++14 constexpr is supported by compiler.

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.


  
    class ctti_type_index;

    // Helper method for getting detail::ctti_data of a template parameter T. 
    template<typename T>  ();
  }
}

Contains the basic utilities necessary to fully emulate dynamic_cast for language level constructs (raw pointers and references).

boost::typeindex::runtime_cast is a drop in replacement for dynamic_cast that can be used in situations where traditional rtti is either unavailable or undesirable.

Contains the overload of boost::typeindex::runtime_pointer_cast for boost::shared_ptr types.


  template<typename T> class shared_ptr;
  
    template<typename T, typename U> 
      boost::shared_ptr<  
      (boost::shared_ptr< );
  }
}

  
    template<typename T, typename U>  ();
    template<typename T, typename U>  ();
    template<typename T, typename U>  ();
    template<typename T, typename U>  ();
  }
}

Contains the overload of boost::typeindex::runtime_cast for reference types.


  
    struct bad_runtime_cast;
    template<typename T, typename U> 
       ();
    template<typename T, typename U> 
       ();
  }
}

Contains the macros BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST and BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS.


BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS(base_class_seq)
BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST(base_class_seq)
BOOST_TYPE_INDEX_NO_BASE_CLASS

Contains the overload of boost::typeindex::runtime_pointer_cast for std::shared_ptr types.


  
    template<typename T, typename U> 
       ();
  }
}

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.


  
    class stl_type_index;
  }
}

  
    template<typename Derived, typename TypeInfo> class type_index_facade;

    // noexcept comparison operators for type_index_facade classes. 
     (type_index_facade & lhs, 
                             type_index_facade & rhs);

    // noexcept comparison operators for type_index_facade and it's TypeInfo classes. 
     (type_index_facade & lhs, 
                              rhs);

    // noexcept comparison operators for type_index_facade's TypeInfo and type_index_facade classes. 
     ( lhs, 
                             type_index_facade & rhs);

    // Ostream operator that will output demangled name. 
    template<typename CharT, typename TriatT, typename Derived, 
             typename TypeInfo> 
       
      ( ostr, 
                 type_index_facade<  ind);
    template<typename Derived, typename TypeInfo> 
       (type_index_facade< );
  }
}

PrevUpHomeNext