0
나는 최근에이 코드 조각은 모두 GCC와 MSVC에서 잘 컴파일 것을 발견C++ 가변 람다에서 "자동"키워드를 제외 하시겠습니까?</p> <pre><code>auto foo = [](...){ cout << "foo() called" << endl; }; </code></pre> <p>그것은 매개 변수의 어떤 종류의 수를 소요하고있는 것처럼 작동하므로 간단하게, 그 매개 변수와 함께 아무것도하지 않는다 :
// All of these lines will call the lambda function
foo();
foo(100);
foo("Test");
foo("Testing", 1, 2, 3);
lambda functions의 C++ 참조 이것에 대해 언급하지 않는 것, 그리고 어느 쪽도 parameter packs에 페이지를하지 않습니다 : auto
은 ...
앞에 배치했다.
auto foo = [](... x){ // compile error
cout << "foo() called" << endl;
};
표준에 의해 결정이 문제인가, 그렇다면, 왜 이전 컴파일하고, 후자는 실패 :
더 놀랍게도,이 컴파일에 실패?
[Variadic arguments] (http://en.cppreference.com/w/cpp/language/variadic_arguments) – cpplearner
그 모든 것을 설명합니다! – Bernard