这两个功能有什么区别?
template <class ...Types> void f(Types... args...){}
template <class ...Types> void g(Types... args){}
答案 0 :(得分:7)
f
与
template <class ...Types> void f(Types... args, ...){}
// ^^^^^
即,它只是来自C的一个普通的可变参数列表。由于历史原因,它可以在没有分离参数所需的通常,
的情况下使用。与g
的区别正是该参数。
请注意,任何参数都不会传递给C风格的可变参数列表,因为C ++风格的可变参数将“吞下”所有参数。