make_pair

コンポーネントの型をパラメーターとして渡されるデータ型に基づく型 pairのオブジェクトの構築に使用できるテンプレート ヘルパー関数。

template<class Type1, class Type2>
    pair<Type1, Type2> make_pair(
      Type1& _Val1,
      Type2& -Val2
);
template<class Type1, class Type2>
    pair<Type1, Type2> make_pair(
      Type1& _Val1,
      Type2&& -Val2
); 
template<class Type1, class Type2>
    pair<Type1, Type2> make_pair(
      Type1&& _Val1,
      Type2& -Val2
); 
template<class Type1, class Type2>
    pair<Type1, Type2> make_pair(
      Type1&& _Val1,
      Type2&& -Val2
);

パラメーター

  • _Val1
    評価します。pairの最初の要素を初期化します。

  • _Val2
    評価します。pairの2番目の要素を初期化します。

戻り値

構築された二つのオブジェクト: pair<[タイプ 1][タイプ 2]> (_Val1*、_Val2*)。

解説

ポインターの配列と関数を腐らせる参照型と変換する型 reference_wrapper クラスmake_pair の変換のオブジェクト。

pair で返されるオブジェクトでは、[タイプ 1] は次のように決定されます:

  • 入力の型が **[タイプ 1]**reference_wrapper<X>の場合、返される型 [タイプ 1] は X&です。

  • それ以外の場合は、返された型 [タイプ 1] は decay<Type1>::typeです。decay クラス がサポートされていない場合、返される型 [タイプ 1] は、入力の型 **[タイプ 1]**と同じです。

返された型 [タイプ 2] は、入力の型 [タイプ 2].から同様に決定されます。

make_pair の1種類の利点は、格納されているオブジェクトの型がコンパイラによって自動的に決定され、明示的に指定する必要がないことです。必要以上に詳細で、コンパイル エラーが発生する可能性がある複雑なrvalue参照問題を追加するため make_pair を使用すると make_pair<int, int>(1, 2) などの明示的なテンプレート引数を使用しないでください。

make_pair のヘルパー関数は、入力パラメーターとしてペアを必要とする関数に2個の値を渡すこともできます。

使用例

ヘルパー関数 make_pair をペアを宣言および初期化する方法の例については、pair Structureを参照してください。

必要条件

ヘッダー : <utility>

名前空間: std

参照

関連項目

<utility>

左辺値と右辺値

make_pair (STL Samples)