std::pointer_traits<Ptr>::pointer_to
提供: cppreference.com
<tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
| ヘッダ <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 の型は未規定です
|
戻り値
pointer_traits<>::pointer 型の、 r を指す逆参照可能なポインタ。
例外
1) 未規定 (一般的には
Ptr::pointer_to と同じ)。
ノート
この関数の Boost.Intrusive ライブラリのバージョンは、 Ptr::pointer_to が存在しなければ pointer(std::addressof(r)) を返します。
関連項目
(C++11) |
& 演算子がオーバーロードされている場合でも、オブジェクトの実際のアドレスを取得します (関数テンプレート) |
(C++17で非推奨)(C++20で削除) |
operator& がオーバーロードされている場合でも、オブジェクトのアドレスを取得します ( std::allocator<T>のパブリックメンバ関数)
|
[静的] (C++20) |
ファンシーポインタから生のポインタを取得します (pointer_to の逆) (パブリック静的メンバ関数) |
(C++20) |
ポインタライクな型から生のポインタを取得します (関数テンプレート) |