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

履歴 編集

class template
<array>

# std::tuple_size(C++11)

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

      // C++11
      template <class T, std::size_t N>
      struct tuple_size<array<T, N>> {
        static constexpr std::size_t value = N;
      };

      // C++14
      template <class T, std::size_t N>
      struct tuple_size<array<T, N>>
        : integral_constant<std::size_t, N> {};
    }

## 概要

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

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

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

## 例

    #include <array>

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

### 出力

## バージョン

### 言語

- C++11

### 処理系

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

## 参照

- LWG Issue 2313. `tuple_size` should always derive from `integral_constant<size_t, N>`