add_pointer (Clase)

Crea un puntero-a-tipo a partir de un tipo especificado.

Sintaxis

template <class T>
struct add_pointer;

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

Parámetros

T
Tipo que se va a modificar.

Comentarios

El typedef de miembro type denomina al mismo tipo como remove_reference<T>::type*. El alias add_pointer_t es un acceso directo para acceder al typedef de miembro type.

Como no es válido crear punteros a partir de referencias, add_pointer quita la referencia, si existe, del tipo especificado antes de crear un puntero-a-tipo. Por consiguiente, se puede usar un tipo con add_pointer sin que preocupe el hecho de si el tipo es una referencia.

Ejemplo

En el ejemplo siguiente se muestra que add_pointer de un tipo es igual que un puntero a ese 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

Encabezado:<type_traits>

Espacio de nombres: std

Consulte también

<type_traits>
remove_pointer (Clase)