reference_wrapper クラス
参照をラップします。
template<class Ty>
class reference_wrapper
: public unary_function<T1, Ret> // see below
: public binary_function<T1, T2, Ret> // see below
{
public:
typedef Ty type;
typedef T0 result_type; // see below
reference_wrapper(Ty&);
Ty& get() const;
operator Ty&() const;
template<class T1, class T2, ..., class TN>
typename result_of<T(T1, T2, ..., TN)>::type
operator()(T1&, T2&, ..., TN&);
private:
Ty *ptr; // exposition only
};
解説
reference_wrapper<Ty> は、コピーによる構築と代入が可能であり、Ty 型のオブジェクトを指し示すポインターを保持します。
特化された型 reference_wrapper<Ty> は、型 Ty が次のいずれかに該当する場合にのみ、std::unary_function<T1, Ret> から派生されます (そのため、入れ子にされた型 result_type を Ret のシノニムとして定義し、入れ子にされた型 argument_type を T1 のシノニムとして定義しています)。
T1 型の引数を 1 つ受け取り、Ret を返す関数の型または関数の型へのポインター。
メンバー関数 Ret T::f() cv へのポインター (cv はメンバー関数の cv 修飾子、型 T1 は cvT*)。
unary_function<T1, Ret> から派生されたクラス型。
特化された型 reference_wrapper<Ty> は、型 Ty が次のいずれかに該当する場合にのみ、std::binary_function<T1, T2, Ret> から派生されます (そのため、入れ子にされた型 result_type を Ret のシノニムとして定義し、入れ子にされた型 first_argument_type を T1 のシノニムとして定義し、入れ子にされた型 second_argument_type を T2 のシノニムとして定義しています)。
T1 型と T2 型の 2 つの引数を受け取り、Ret を返す関数の型または関数の型へのポインター。
メンバー関数 Ret T::f(T2) cv へのポインター (cv はメンバー関数の cv 修飾子、型 T1 は cvT*)。
binary_function<T1, T2, Ret> から派生されたクラス型。
コンストラクター
reference_wrapper を構築します。 |
Typedef
ラップされた参照の弱い結果型です。 |
|
ラップされた参照の型です。 |
メンバー関数
ラップされた参照を取得します。 |
演算子
ラップされた参照へのポインターを取得します。 |
|
ラップされた参照を呼び出します。 |
必要条件
ヘッダー : <functional>
名前空間: std