Класс is_same
Класс is_same из секции tpl предназначен для проверки того, совпадают ли два типа. В первый параметр шаблона мы передаем первый тип, а во второй - второй тип. Если типы идентичны, то константа value будет равна true, иначе false.
Синтаксис
template <class T, class U>
struct is_same;
Пример
Давайте проверим, совпадают ли типы int и int:
#include <iostream>
#include <type_traits>
using namespace std;
int main()
{
cout << is_same<int, int>::value << endl;
return 0;
}
Результат выполнения кода:
1
Пример
Давайте проверим, совпадают ли типы int и double:
#include <iostream>
#include <type_traits>
using namespace std;
int main()
{
cout << is_same<int, double>::value << endl;
return 0;
}
Результат выполнения кода:
0
Пример
Давайте проверим, совпадают ли типы const int и int:
#include <iostream>
#include <type_traits>
using namespace std;
int main()
{
cout << is_same<const int, int>::value << endl;
return 0;
}
Результат выполнения кода:
0
Смотрите также
-
класс
is_same_v,
который предоставляет удобный доступ к значению -
класс
decay,
который удаляет ссылки и cv-квалификаторы -
класс
remove_reference,
который убирает ссылку из типа -
класс
enable_if,
который включает шаблон при выполнении условия