add_pointer Class

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at add_pointer Class.

Makes a pointer-to-type from a specified type.

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

Parameters

Ty
The type to modify.

The member typedef type names the same type as remove_reference<T>::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

<type_traits>
remove_pointer Class

Show: