一个C++变量λ中的“自动”关键字?

一个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; }; 这种行为是由标准规定的吗?如果是,为什么

我最近发现这段代码在GCC和MSVC中都编译得很好:

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;
};