Classe add_pointer
Crea un puntatore al tipo da un tipo specificato.
Sintassi
template <class T>
struct add_pointer;
template <class T>
using add_pointer_t = typename add_pointer<T>::type;
Parametri
T
Tipo da modificare.
Osservazioni:
Il membro typedef
type
denomina lo stesso tipo di remove_reference<T>::type*
. L'alias add_pointer_t
è un collegamento per accedere al membro typedef
type
.
Poiché non è valido creare un puntatore da un riferimento, add_pointer
rimuove il riferimento, se presente, dal tipo specificato prima di creare un puntatore al tipo. È pertanto possibile utilizzare un tipo con add_pointer
senza doversi preoccupare che il tipo sia un riferimento.
Esempio
Nell'esempio seguente viene illustrato che add_pointer
di un tipo equivale a un puntatore a tale 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 *
Requisiti
Intestazione:<type_traits>
Spazio dei nomi: std