Тайп-трейты (type traits) — это классовые шаблоны, используемые для получения информации о свойствах типов во время компиляции. Они позволяют писать более гибкий и общий код, адаптирующийся в зависимости от характеристик используемых типов.
Примеры информации, которую можно получить с помощью тайп-трейтов:
Тайп-трейты обычно находятся в заголовке <type_traits>. Результат проверки свойства типа выражается через статическое поле value булевого типа или через тип type (часто std::true_type или std::false_type).
Пример использования std::is_integral:
cpp
Многие тайп-трейты имеют v-версии (value-версии) для более удобного доступа к полю value:
cpp
Тайп-трейты часто используются с:
if constexpr (в C++17 и выше) для метапрограммирования во время компиляции.static_assert для проверки свойств типов на этапе компиляции.