Класс add_pointer
Создает указатель на тип из указанного типа.
template<class Ty>
struct add_pointer;
template<class T>
using add_pointer_t = typename add_pointer<T>::type;
Параметры
- Ty
Тип для изменения.
Заметки
Тип typedef члена именует тот же тип как remove_reference<T>::type*.
Поскольку его нельзя использовать для создания указателя из ссылки, add_pointer удаляет ссылку (если таковая имеется) из указанного типа, прежде чем создать указатель на тип. Следовательно, можно использовать тип с add_pointer вне зависимости от того, является ли данный тип ссылкой.
Пример
В следующем примере показано, что add_pointer типа аналогичен указателю на данный тип.
#include <type_traits>
#include <iostream>
int main()
{
std::add_pointer_t<int> *p = (int **)0;
p = p; // to quiet "unused" warning
std::cout << "add_pointer_t<int> == "
<< typeid(*p).name() << std::endl;
return (0);
}
Требования
Заголовок: <type_traits>
Пространство имен: std