C++14增加了integer_sequence类型,用于快速的生成一个整数序列:
template <class T, T... Vals>
struct integer_sequence
注:由于是生成整数序列,所以T的类型;必须是整数类型:bool、char、char16_t、char32_t、wchar_t或是带符号或无符号整数类型。
#include <iostream>
#include <utility>
using namespace std;
template<typename T, T... ints>
void pSeq(integer_sequence<T, ints...> int_seq)
{
cout << "Size is " << int_seq.size() << endl; //可以通过size获取队列中元素的个数
cout << "Sequence is :";
((cout << ints << ' '), ...); //输出序列的元素
std::cout << '\n';
}
int main() {
pSeq(std::integer_sequence<int, 1, 2, 3, 4, 5>());
return 0;
}
运行程序输出: