index_sequence返回大小总是1

std::index_sequence return size always 1

本文关键字:sequence 返回 index      更新时间:2023-10-16

我是c++ 14 std::index_sequence的新手。结构体的size成员是什么意思?不管我创建了多少个元素,它总是返回1。

std::integer_sequence<int, 1, 2, 3>::size  => 1
std::index_sequence<8, 7, 1, 5>::size => 1 

I认为返回值应该是3和4(该序列的元素数)。

std::integer_sequence::size是一个函数,所以你需要调用它:

std::integer_sequence<int, 1, 2, 3>::size() => 3

您可能会看到1,因为如果您编写像

这样的代码
std::cout << std::integer_sequence<int, 1, 2, 3>::size;

则函数将隐式转换为函数指针,然后转换为bool,由于指针不为空,因此值将为true