Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The latest version of this topic can be found at add_pointer Class.
Makes a pointer-to-type from a specified type.
Syntax
template <class Ty>
struct add_pointer;
template <class T>using add_pointer_t = typename add_pointer<T>::type;
Parameters
Ty
The type to modify.
Remarks
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.
Example
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 *
Requirements
Header: <type_traits>
Namespace: std