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

履歴 編集

class template
<span>

std::tuple_size(C++20)

namespace std {
  template <class T> class tuple_size; // 先行宣言

  template <class ElementType, std::size_t Extent>
  struct tuple_size<span<ElementType, Extent>>
    : integral_constant<std::size_t, Extent> {};

  template <class ElementType>
  struct tuple_size<span<ElementType, dynamic_extent>>; // 宣言のみで定義なし
}

概要

tuple_sizeは、タプルとして見なせる型の要素数を取得するためのクラスである。

要素数は、integral_constantの機能を利用してコンパイル時の定数値として取得できる。

<span>ヘッダでは、静的な要素数をもつstd::spanクラスに関する特殊化を定義する。

動的な要素数を表すstd::dynamic_extentをもつstd::span型は、タプルとしては扱えない。

#include <span>

int main()
{
  static_assert(std::tuple_size<std::span<int, 3>>::value == 3);
}

出力

バージョン

言語

  • C++20

処理系