Класс add_pointer
Создает указатель на тип из указанного типа.
Синтаксис
template <class T>
struct add_pointer;
template <class T>
using add_pointer_t = typename add_pointer<T>::type;
Параметры
T
Тип для изменения.
Замечания
typedef
type
Член именует тот же тип, что remove_reference<T>::type*
и . Псевдоним add_pointer_t
— это ярлык для доступа к члену typedef
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);
}
add_pointer_t<int> == int *
Требования
Заголовок:<type_traits>
Пространство имен: std