最終更新日時: 2025年07月12日 02時16分44秒 (JST)
Koichi Murase が更新

履歴 編集

class template
<utility>

# std::tuple_element(C++11)

    namespace std {
      template <size_t I, class T> class tuple_element;

      template <class T1, class T2>
      struct tuple_element<0, pair<T1, T2>> {
        using type = T1;
      };

      template <class T1, class T2>
      struct tuple_element<1, pair<T1, T2>> {
        using type = T2;
      };
    }

## 概要

`tuple_element`は、タプルとして見なせる型から、`I`番目の要素型を取得するためのクラスである。

`<utility>`ヘッダでは、`pair`に関する特殊化を定義する。

## 例

    #include <utility>
    #include <type_traits>

    int main()
    {
      static_assert(std::is_same<
                      std::tuple_element<0, std::pair<int, double>>::type,
                      int
                    >::value, "");

      static_assert(std::is_same<
                      std::tuple_element<1, std::pair<int, double>>::type,
                      double
                    >::value, "");
    }

### 出力

## バージョン

### 言語

- C++11

### 処理系

- Clang: ??
- GCC: 4.6.1 ✅
- ICC: ??
- Visual C++: 2008 (std::tr1) ✅, 2010 ✅, 2012 ✅, 2013 ✅, 2015 ✅

## 参照

- `tuple_element - <tuple>`