当以下工作发生时我很惊讶
template<typename T>
void f(T &...);
我认为我必须将“T”声明为“typename ...T”,并且它只适用于 C++0x。但以上是在严格的 C++03 模式下编译的。怎么回事?
最佳答案
这只是糟糕的旧 C 可变参数语法;语法允许省略逗号。以下是等价的:
int printf(const char* fmt, ...);
int printf(const char* fmt...);
关于c++ - 我的编译器允许 "T&..."。这是一个扩展吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4908132/