我正在查看我的标题(g ++ - 4.5.2)中的一些模板的实现,我发现了以下内容:
/// is_function
template<typename>
struct is_function
: public false_type { };
template<typename _Res, typename... _ArgTypes>
struct is_function<_Res(_ArgTypes...)>
: public true_type { };
template<typename _Res, typename... _ArgTypes>
struct is_function<_Res(_ArgTypes......)>
: public true_type { };
前两个声明似乎合理,但我无法弄清楚第三个如何工作。什么是......
?我在标准中寻找它,但找不到任何东西。
答案 0 :(得分:6)
它与:
相同_Res(_ArgTypes..., ...)
省略号参数前面的逗号是可选的。
答案 1 :(得分:0)
此模板处理函数中的可变长度参数。例如:
void foo(bool, char, int...)