#include<cstdio> auto voidLambda = []()->void{}; class MyClass{ public: decltype(voidLambda) t; MyClass(decltype(voidLambda) t){this->t=t;} }; int main() { MyClass([]{printf("hi");}); }
Standard input is empty
prog.cpp: In constructor 'MyClass::MyClass(<lambda()>)': prog.cpp:3:79: error: no matching function for call to '<lambda()>::__lambda0()' prog.cpp:2:20: note: candidates are: <lambda()>::<lambda>(const<lambda()>&) prog.cpp:2:20: note: <lambda()>::<lambda>(<lambda()>&&) prog.cpp:3:88: error: no match for 'operator=' in '((MyClass*)this)->MyClass::t = t' prog.cpp: In function 'int main()': prog.cpp:5:27: error: no matching function for call to 'MyClass::MyClass(main()::<lambda()>)' prog.cpp:3:48: note: candidates are: MyClass::MyClass(<lambda()>) prog.cpp:3:14: note: MyClass::MyClass(const MyClass&)
Standard output is empty