据我了解,lambda表达式之前的+
运算符将其解析为函数指针重载。 (Post)
但是我不十分了解为什么它不适用于通用lambda。例如:
auto foo = +[](int a) { std::cout << "foo " << a << std::endl; }; // Valid
auto bar = +[](auto a) { std::cout << "bar " << a << std::endl; }; // Fails
// compiler error:
// no match for ‘operator+’ (operand type is ‘main()::<lambda(auto:1)>’)
这背后的直觉是什么?