Здравствуйте. Я видел много таких примеров на Cppreference.com:
std::is_class<T>
std::is_integral
И так далее. Я знаю, если я, например, запускаю код, я получаю true
или false
. Но какой в этом смысл? например, зная, что объект относится к типу класса или нет?
#include <iostream>
#include <type_traits>
struct A {};
class B {};
enum class C {};
int main()
{
std::cout << std::boolalpha;
std::cout << std::is_class<A>::value << '\n';
std::cout << std::is_class<B>::value << '\n';
std::cout << std::is_class<C>::value << '\n';
std::cout << std::is_class<int>::value << '\n';
}
Вывод:
true
true
false
false
Я искал во всем реальный пример, используя это(is_class
, is_integral
, is_arithmetic
, ...) Но все уроки показывают только безнадежный пример: только true
или false
.
Может кто-нибудьпомогите мне с небольшим полезным примером использования этих шаблонов?