| Home | Libraries | People | FAQ | More

## How it works

`type_index` is just a typedef for `boost::typeindex::stl_type_index` or `boost::typeindex::ctti_type_index`.

Depending on the `typeid()` availability TypeIndex library will choose an optimal class for `type_index`. In cases when at least basic support for `typeid()` is available `stl_type_index` will be used.

`BOOST_TYPE_INDEX_REGISTER_CLASS` macro is a helper macro that places some virtual helper functions or expands to nothing.

`BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS` macro is a helper macro that places the same helpers as BOOST_TYPE_INDEX_REGISTER_CLASS plus some additional helpers for boost::typeindex::runtime_cast to function.

Issues with cross module type comparison on a bugged compilers are bypassed by directly comparing strings with type (latest versions of those compilers resolved that issue using exactly the same approach).