最終更新日時: 2024年08月02日 15時00分52秒 (JST)
Akira Takahashi が更新

履歴 編集

class template
<complex>

# std::tuple_element(C++26)

    namespace std {
      template <std::size_t I, class T> class tuple_element; // 先行宣言

      template<size_t I, class T>
      struct tuple_element<I, complex<T>> {
        using type = T;
       };
    }

## 概要

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

`<complex>`ヘッダでは、`std::complex`クラスに関する特殊化を定義する。

## 適格要件

- `I < 2`であること

## 例

    #include <complex>
    #include <type_traits>

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

      static_assert(std::is_same<
                      std::tuple_element<1, std::complex<float>>::type,
                      float
                    >::value, "");
    }

### 出力

## バージョン

### 言語

- C++26

### 処理系

- Clang: 19.0 ❌
- GCC: 14 ❌
- Visual C++: 2022 Update 10 ❌

## 参照

- P2819R2 Add tuple protocol to complex
  - C++26から`std::complex`にタプルインタフェースがサポートされた