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 miembro typedef
type
asigna el mismo tipo que remove_reference<T>::type*
. El alias add_pointer_t
es un acceso directo para acceder al miembro typedef
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