Skip to content

Latest commit

 

History

History
69 lines (54 loc) · 1.94 KB

make_pair.md

File metadata and controls

69 lines (54 loc) · 1.94 KB

make_pair

  • utility[meta header]
  • std[meta namespace]
  • function template[meta id-type]
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[link /reference/utility/pair.md]

概要

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));
  • std::forward[link forward.md]

#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));
}
  • std::make_pair[color ff0000]
  • std::ref[link /reference/functional/ref.md]

出力

参照