Classe add_pointer

Cria um ponteiro para tipo de um tipo especificado.

Sintaxe

template <class T>
struct add_pointer;

template <class T>
using add_pointer_t = typename add_pointer<T>::type;

Parâmetros

T
O tipo a ser modificado.

Comentários

O membro typedef type nomeia o mesmo tipo que remove_reference<T>::type*. O alias add_pointer_t é um atalho para acessar o membro typedef type.

Uma vez que não é válido criar um ponteiro de uma referência, add_pointer remove a referência, se houver, do tipo especificado antes de criar um ponteiro para tipo. Consequentemente, você pode usar um tipo com add_pointer sem se preocupar se o tipo é uma referência.

Exemplo

O exemplo a seguir demonstra que add_pointer de um tipo é o mesmo que um ponteiro para esse tipo.

#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 *

Requisitos

Cabeçalho:<type_traits>

Namespace: std

Confira também

<type_traits>
Classe remove_pointer