次の方法で共有


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> から派生されたクラス型。

Bb982605.collapse_all(ja-jp,VS.110).gifコンストラクター

reference_wrapper::reference_wrapper

reference_wrapper を構築します。

Bb982605.collapse_all(ja-jp,VS.110).gifTypedef

reference_wrapper::result_type

ラップされた参照の弱い結果型です。

reference_wrapper::type

ラップされた参照の型です。

Bb982605.collapse_all(ja-jp,VS.110).gifメンバー関数

reference_wrapper::get

ラップされた参照を取得します。

Bb982605.collapse_all(ja-jp,VS.110).gif演算子

reference_wrapper::operator Ty&

ラップされた参照へのポインターを取得します。

reference_wrapper::operator()

ラップされた参照を呼び出します。

必要条件

ヘッダー : <functional>

名前空間: std

参照

関連項目

cref 関数

ref 関数

その他の技術情報

<functional> メンバー