РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
720 of 815 menu

Класс is_pointer

Класс is_pointer из заголовочного файла type_traits проверяет, является ли переданный тип указателем. В параметр шаблона мы передаем тип, который нужно проверить. Класс содержит константное поле value, которое равно true, если тип является указателем, и false в противном случае. Также доступна переменная-шаблон is_pointer_v, возвращающая значение напрямую.

Синтаксис

template <class T> struct is_pointer; template <class T> inline constexpr bool is_pointer_v = is_pointer<T>::value;

Пример

Давайте проверим, является ли тип int* указателем:

#include <iostream> #include <type_traits> using namespace std; int main() { cout << boolalpha; cout << is_pointer<int*>::value << endl; cout << is_pointer<int>::value << endl; return 0; }

Результат выполнения кода:

true false

Пример

Давайте воспользуемся переменной-шаблоном is_pointer_v для более краткой записи:

#include <iostream> #include <type_traits> using namespace std; int main() { cout << boolalpha; cout << is_pointer_v<double*> << endl; cout << is_pointer_v<double> << endl; return 0; }

Результат выполнения кода:

true false

Пример

Давайте проверим несколько типов, включая указатель на функцию и умный указатель:

#include <iostream> #include <type_traits> #include <memory> using namespace std; int main() { cout << boolalpha; cout << is_pointer_v<void*> << endl; cout << is_pointer_v<int(*)(int)> << endl; cout << is_pointer_v<shared_ptr<int>> << endl; cout << is_pointer_v<int&> << endl; return 0; }

Результат выполнения кода:

true true false false

Смотрите также

  • класс is_same,
    который проверяет совпадение типов
  • класс is_integral,
    который проверяет целочисленный тип
  • класс decay,
    который убирает ссылки и квалификаторы
  • класс remove_reference,
    который убирает ссылку из типа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить