最終更新日時:
が更新

履歴 編集

function template
<utility>

std::make_pair

namespace std {
  template <class T1, class T2>
  pair<V1, V2> make_pair(T1, T2);                   // C++03

  template <class T1, class T2>
  pair<V1, V2> make_pair(T1&& x, T2&& y);           // C++11

  template <class T1, class T2>
  constexpr pair<V1, V2> make_pair(T1&& x, T2&& y); // C++14
}

概要

pairクラスのオブジェクトを構築する。

C++03の場合、結果型のV1およびV2は以下のような型となる:

  • V1 : T1
  • V2 : T2

C++11以降の場合、結果型のV1およびV2は以下のような型となる:

T1T2それぞれの型Tにおいて、

戻り値

std::pair<V1, V2>(std::forward<T1>(x), std::forward<T2>(y));

#include <iostream>
#include <utility>
#include <functional>

int main()
{
  std::pair<int, char> p1 = std::make_pair(1, 'a');

  int ar[3] = {1, 2, 3};
  char c = 'b';

  // 配列はT*となり、reference_wrapper<T>はT&となる。
  std::pair<int*, char&> p2 = std::make_pair(ar, std::ref(c));
}

出力

参照