小编rhl*_*ini的帖子

当省略号位于模式的最内层元素上时,在可变参数模板中打包扩展

我在cppreference.com上看到了这个例子.我不清楚函数参数的包扩展.

功能参数列表

在函数参数列表中,如果省略号出现在参数声明中(无论它是否命名函数参数包(如,Args ... args))参数声明是模式:

template<typename ...Ts> void f(Ts...) {}
f('a', 1);  // Ts... expands to void f(char, int)
f(0.1);     // Ts... expands to void f(double)

template<typename ...Ts, int... N> void g(Ts (&...)[N]) {}
int n[1];
g<const char, int>("a", n); // Ts (&...)[N] expands to const char (&)[2], int(&)[1]
Run Code Online (Sandbox Code Playgroud)

注意:在此模式中,省略号是最内层元素,而不是所有其他包扩展中的最后一个元素.

c++ templates variadic-templates c++11

5
推荐指数
1
解决办法
609
查看次数

标签 统计

c++ ×1

c++11 ×1

templates ×1

variadic-templates ×1