Joh*_*itb 12 c++ ellipsis c++11
以下工作时我感到很惊讶
template<typename T>
void f(T &...);
Run Code Online (Sandbox Code Playgroud)
我认为我必须将"T"声明为"typename ... T"然后,它只能在C++ 0x中工作.但是上面编译的是严格的C++ 03模式.这是怎么回事?
Joh*_*esD 20
这只是糟糕的旧C varargs语法; 语法允许省略逗号.以下是等效的:
int printf(const char* fmt, ...);
int printf(const char* fmt...);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
229 次 |
| 最近记录: |