名前空間
変種
操作

std::pointer_traits<Ptr>::pointer_to

提供: cppreference.com
 
 
動的メモリ管理
スマートポインタ
(C++11)
(C++11)
(C++11)
(C++17未満)
(C++11)
アロケータ
メモリリソース
未初期化記憶域
(C++17)
ガベージコレクションサポート
その他
(C++20)
(C++11)
(C++11)
C のライブラリ
低水準のメモリ管理
 
std::pointer_traits
メンバ関数
pointer_traits::pointer_to
 
ヘッダ <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)
& 演算子がオーバーロードされている場合でも、オブジェクトの実際のアドレスを取得します
(関数テンプレート) [edit]
(C++17で非推奨)(C++20で削除)
operator& がオーバーロードされている場合でも、オブジェクトのアドレスを取得します
(std::allocator<T>のパブリックメンバ関数) [edit]
[静的] (C++20)
ファンシーポインタから生のポインタを取得します (pointer_to の逆)
(パブリック静的メンバ関数) [edit]
ポインタライクな型から生のポインタを取得します
(関数テンプレート) [edit]