add_pointer 类
从指定类型创建指向类型的指针。
语法
template <class T>
struct add_pointer;
template <class T>
using add_pointer_t = typename add_pointer<T>::type;
参数
T
要修改的类型。
备注
成员typedef
type
将同一类型命名为 remove_reference<T>::type*
. 别名add_pointer_t
是访问成员typedef
type
的快捷方式。
因为从引用创建指针是无效的,所以 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