add_pointer, classe
Crée un pointeur vers un type à partir d'un type spécifié.
Syntaxe
template <class T>
struct add_pointer;
template <class T>
using add_pointer_t = typename add_pointer<T>::type;
Paramètres
T
Type à modifier.
Notes
Le membre typedef
type
nomme le même type que remove_reference<T>::type*
. L’alias add_pointer_t
est un raccourci pour accéder au membre typedef
type
.
Comme il n'est pas valide de créer un pointeur à partir d'une référence, add_pointer
supprime la référence, le cas échéant, du type spécifié avant de créer un pointeur vers un type. Par conséquent, vous pouvez utiliser un type avec add_pointer
sans vous soucier de savoir si ce type est une référence.
Exemple
L'exemple suivant montre que l'objet add_pointer
d'un type est le même qu'un pointeur vers ce type.
#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 *
Spécifications
Header :<type_traits>
Espace de noms : std