一个C++变量λ中的“自动”关键字?
我最近发现这段代码在GCC和MSVC中都编译得很好:一个C++变量λ中的“自动”关键字?,c++,lambda,c++14,variadic-templates,auto,C++,Lambda,C++14,Variadic Templates,Auto,我最近发现这段代码在GCC和MSVC中都编译得很好: auto foo = [](...){ cout << "foo() called" << endl; }; < C++引用没有提到这一点,而且页面上也没有。 更令人惊讶的是,这无法编译: auto foo = [](... x){ // compile error cout << "foo() called" << endl; }; 这种行为是由标准规定的吗?如果是,为什么
auto foo = [](...){
cout << "foo() called" << endl;
};
< C++引用没有提到这一点,而且页面上也没有。
更令人惊讶的是,这无法编译:
auto foo = [](... x){ // compile error
cout << "foo() called" << endl;
};
这种行为是由标准规定的吗?如果是,为什么前者要编译,而后者失败?这只是简单的旧类型不安全的C风格。这就解释了一切!
auto foo = [](... x){ // compile error
cout << "foo() called" << endl;
};