命名空间
变体
操作

std::pointer_traits<Ptr>::pointer_to

来自 cppreference.cn
< cpp‎ | 内存‎ | 指针特性
 
 
内存管理库
(仅作说明*)
未初始化内存算法
(C++17)
(C++17)
(C++17)
受约束的未初始化
内存算法
C 库

分配器
内存资源
垃圾回收支持
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
未初始化存储
(直到 C++20*)
(直到 C++20*)
显式生命周期管理
 
std::pointer_traits
成员函数
pointer_traits::pointer_to
(C++11)
 
定义于头文件 <memory>
static pointer
pointer_to( element_type& r );
(1) (C++11 起)
(pointer_traits<Ptr> 特化成员)
(2)
static pointer
pointer_to( element_type& r ) noexcept;
(C++11 起)
(C++20 前)
(pointer_traits<T*> 特化成员)
static constexpr pointer
pointer_to( element_type& r ) noexcept;
(C++20 起)
(pointer_traits<T*> 特化成员)

构造一个可解引用指针或类似指针的对象(“花式指针”)指向其参数。

1) 非特化的 std::pointer_traits 模板中的此函数版本简单地调用 Ptr::pointer_to(r),如果 Ptr 不提供静态成员函数 pointer_to,则此函数的实例化会产生编译时错误。
2) 针对指针类型的 std::pointer_traits 特化中的此函数版本返回 std::addressof(r)

目录

[编辑] 参数

r - 指向 element_type& 类型对象的引用,除非 element_type 是 void,在这种情况下 r 的类型未指定。

[编辑] 返回值

指向 r 的可解引用指针,类型为 pointer_traits<>::pointer

[编辑] 异常

1) 未指定(通常与 Ptr::pointer_to 相同)。

[编辑] 注意

此函数的 Boost.Intrusive 库版本如果 Ptr::pointer_to 不存在,则返回 pointer(std::addressof(r))

[编辑] 另请参阅

(C++11)
获取对象的实际地址,即使 & 运算符被重载
(函数模板) [编辑]
(C++20 前)
获取对象的地址,即使 operator& 被重载
(std::allocator<T> 的公共成员函数) [编辑]
[静态] (C++20)(可选)
从花式指针获取原始指针(pointer_to 的逆操作)
(公共静态成员函数) [编辑]
从类指针类型获取原始指针
(函数模板) [编辑]