add_pointer 类

从指定类型创建指向类型的指针。

语法

template <class T>
struct add_pointer;

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

参数

T
要修改的类型。

备注

成员typedeftype将同一类型命名为 remove_reference<T>::type*. 别名add_pointer_t是访问成员typedeftype的快捷方式。

因为从引用创建指针是无效的,所以 add_pointer 将从指定类型中移除引用(如果有),然后再创建指向类型的指针。 因此,你可以将某一类型用于 add_pointer,而不必考虑该类型是否是引用。

示例

下面的示例演示某一类型的 add_pointer 与指向该类型的指针相同。

#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 *

要求

标头:<type_traits>

命名空间: std

另请参阅

<type_traits>
remove_pointer 类