В библиотеке Boost Type Traits есть функция компиляции времени для запроса информации о типе C++. Эта информация очень полезна во время метапрограммирования шаблонов и составляет основу, наряду с конструкциями библиотеки Boost MPL и некоторых других библиотек времени компиляции, для большей части метапрограммирования шаблонов в Boost.
Одной из областей, которая в основном отсутствует в библиотеке Type Traits, является способность определять, какие внутренние элементы C++ являются частью типа, где внутренний элемент может быть вложенным типом, функцией или членом данных, статической функцией или статическим членом данных или шаблоном класса.
Некоторые из этих функций были в Boost, как в уже существующих библиотеках, так и в библиотеках, над которыми работали другие, но которые никогда не были представлены для принятия в Boost. Примером с существующей библиотекой Boost является Boost MPL, где есть функциональность в виде макросов и метафункций, чтобы определить, имеет ли закрытый тип конкретный вложенный тип или вложенный шаблон класса. Примером библиотеки, которая никогда не была представлена Boost, является библиотека концептуальных черт, из которой была взята и расширена большая часть функциональности этой библиотеки.
Возможно также, что некоторые другие библиотеки Boost, сильно зависящие от продвинутых методов метапрограммирования шаблонов, также имеют внутреннюю функциональность для интроспектирования элементов типа во время компиляции. Но, насколько мне известно, такого рода функции никогда не были включены в одну библиотеку Boost. Эта библиотека является попыткой сделать это и принести узнаваемый набор интерфейсов для интроспекции типа компиляции времени, чтобы другие библиотеки метапрограммирования могли использовать их для своих собственных нужд.