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