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

履歴 編集

class template
<span>

std::tuple_element(C++20)

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

  template <std::size_t I, class ElementType, std::size_t Extent>
  struct tuple_element<I, span<ElementType, Extent>> {
    static_assert(I < N, implementation-defined);
    using type = ElementType;
  }
}

概要

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

<span>ヘッダでは、spanクラスに関する特殊化を定義する。 spanの特殊化では、tuple_element::typeは常にElementTypeである。

適格要件

  • I < Extentであること

#include <span>
#include <type_traits>

int main()
{
  using S = std::span<int, 3>;

  static_assert(std::is_same_v<
                  std::tuple_element<0, S>::type,
                  int
                >);

  static_assert(std::is_same_v<
                  std::tuple_element<1, S>::type,
                  int
                >);
}

出力

バージョン

言語

  • C++20

処理系