最終更新日時(UTC):
が更新

履歴 編集

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クラスのオブジェクトを構築する。

結果型のV1およびV2は以下のような型となる:

  • C++03 :
    • V1 : T1
    • V2 : T2
  • C++11 : T1T2それぞれの型Tにおいて、
  • C++20 : T1T2それぞれの型Tにおいて、

戻り値

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

#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));
}

出力

参照