Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Создает указатель на тип из указанного типа.
Синтаксис
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