namespace std {
template <class T> class tuple_size; // 先行宣言
template <class T>
struct tuple_size<complex<T>>
: integral_constant<std::size_t, 2> {};
}
概要
tuple_size
は、タプルとして見なせる型の要素数を取得するためのクラスである。
要素数は、integral_constant
の機能を利用してコンパイル時の定数値として取得できる。
<complex>
ヘッダでは、std::complex
クラスに関する特殊化を定義する。
例
#include <complex>
int main()
{
static_assert(std::tuple_size<std::complex<float>>::value == 2, "");
}
出力
バージョン
言語
- C++26
処理系
- Clang: 19.0 ❌
- GCC: 14 ❌
- Visual C++: 2022 Update 10 ❌
参照
- P2819R2 Add tuple protocol to complex
- C++26から
std::complex
にタプルインタフェースがサポートされた
- C++26から