std::pointer_traits<Ptr>::pointer_to

来自cppreference.com
 
 
动态内存管理
智能指针
(C++11)
(C++11)
(C++11)
(C++17 前)
(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++11)(C++23 前)
杂项
(C++20)
(C++11)
(C++11)
C 库
低层内存管理
 
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

注意

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

参阅

(C++11)
获得对象的实际地址,即使其重载了 & 运算符
(函数模板)
(C++17 中弃用)(C++20 中移除)
获得对象的地址,即使重载了 operator&
(std::allocator<T> 的公开成员函数)
[静态] (C++20)(可选)
从缀饰指针获得裸指针( pointer_to 的反函数)
(公开静态成员函数)
从指针式类型获得裸指针
(函数模板)