最終更新日時:
が更新

履歴 編集

function
<utility>

std::get(C++11)

namespace std {
  template <size_t I, class T1, class T2>
  typename tuple_element<I, pair<T1, T2>>::type&
    get(pair<T1, T2>& x) noexcept;                     // (1) C++11

  template <size_t I, class T1, class T2>
  constexpr tuple_element_t<I, pair<T1, T2>>&
    get(pair<T1, T2>&) noexcept;                       // (1) C++14

  template <size_t I, class T1, class T2>
  typename tuple_element<I, pair<T1, T2>>::type&&
    get(pair<T1, T2>&& x) noexcept;                    // (2) C++11

  template <size_t I, class T1, class T2>
  constexpr tuple_element_t<I, pair<T1, T2>>&&
    get(pair<T1, T2>&&) noexcept;                      // (2) C++14

  template <size_t I, class T1, class T2>
  const typename tuple_element<I, pair<T1, T2>>::type&
    get(const pair<T1, T2>& x) noexcept;               // (3) C++11

  template <size_t I, class T1, class T2>
  constexpr const tuple_element_t<I, pair<T1, T2>>&
    get(const pair<T1, T2>&) noexcept;                 // (3) C++14
}

概要

タプルと見なせる型から指定した位置の要素を取得する。

<utility>ヘッダでは、pairに関するオーバーロードを提供する。

要件

テンプレートパラメータIが、pairの要素数よりも小さいこと。

この要件を満たさない場合はコンパイルエラーとなる。

戻り値

pairI番目の要素

例外

投げない

#include <iostream>
#include <utility>

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

  int& i = std::get<0>(p);
  char& c = std::get<1>(p);

  std::cout << i << std::endl;
  std::cout << c << std::endl;
}

出力

1
a

バージョン

言語

  • C++11

処理系

参照