| title | add_pointer Class | Microsoft Docs | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ms.custom | ||||||||||||||
| ms.date | 11/04/2016 | |||||||||||||
| ms.reviewer | ||||||||||||||
| ms.suite | ||||||||||||||
| ms.technology |
|
|||||||||||||
| ms.tgt_pltfrm | ||||||||||||||
| ms.topic | article | |||||||||||||
| f1_keywords |
|
|||||||||||||
| dev_langs |
|
|||||||||||||
| helpviewer_keywords |
|
|||||||||||||
| ms.assetid | d8095cb0-6578-4143-b78f-87f82485298c | |||||||||||||
| caps.latest.revision | 22 | |||||||||||||
| author | corob-msft | |||||||||||||
| ms.author | corob | |||||||||||||
| manager | ghogen | |||||||||||||
| translation.priority.mt |
|
Makes a pointer-to-type from a specified type.
template <class T>
struct add_pointer;
template <class T>
using add_pointer_t = typename add_pointer<T>::type;
T
The type to modify.
The member typedef type names the same type as remove_reference<T>::type*. The alias add_pointer_t is a shortcut to access the member typedef type.
Because it is invalid to make a pointer from a reference, add_pointer removes the reference, if any, from the specified type before it makes a pointer-to-type. Consequently, you can use a type with add_pointer without being concerned about whether the type is a reference.
The following example demonstrates that add_pointer of a type is the same as a pointer to that 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 *
Header: <type_traits>
Namespace: std