std:: tuple_size <std::tuple>
From cppreference.net
|
定义于头文件
<tuple>
|
||
|
template
<
class
...
Types
>
struct
tuple_size
<
std::
tuple
<
Types...
>
>
|
(C++11 起) | |
提供对元组中元素数量的访问,作为编译时常量表达式。
目录 |
辅助变量模板
|
template
<
class
T
>
constexpr std:: size_t tuple_size_v = tuple_size < T > :: value ; |
(C++17 起) | |
继承自 std:: integral_constant
成员常量
|
value
[static]
|
sizeof...(Types)
(公开静态成员常量) |
成员函数
|
operator std::size_t
|
将对象转换为
std::
size_t
,返回
value
(公开成员函数) |
|
operator()
(C++14)
|
返回
value
(公开成员函数) |
成员类型
| 类型 | 定义 |
value_type
|
std:: size_t |
type
|
std:: integral_constant < std:: size_t , value > |
示例
运行此代码
#include <iostream> #include <tuple> template <class T> void test(T value) { int a[std::tuple_size_v<T>]; // 可在编译时使用 std::cout << std::tuple_size<T>{} << ' ' // 或在运行时使用 << sizeof a << ' ' << sizeof value << '\n'; } int main() { test(std::make_tuple(1, 2, 3.14)); }
可能的输出:
3 12 16
参见
| 结构化绑定 (C++17) | 将指定名称绑定到初始化器的子对象或元组元素 |
|
(C++11)
|
获取类元组类型的元素数量
(类模板) |
|
(C++11)
|
获取
pair
的大小
(类模板特化) |
|
(C++11)
|
获取
array
的大小
(类模板特化) |
|
获取
std::ranges::subrange
的大小
(类模板特化) |
|
|
(C++11)
|
元组访问指定元素
(函数模板) |