CppCoreGuidelines C.170 如果你想要重载一个 lambda,请使用泛型 lambda
24 January 2023
“If you feel like overloading a lambda, use a generic lambda”
理由
你无法用相同的名字重载定义不同的 lambda
例子
void f(int); void f(double); auto f = [](char); // error: cannot overload variable and function auto g = [](int) { /* ... */ }; auto g = [](double) { /* ... */ }; // error: cannot overload variables auto h = [](auto) { /* ... */ }; // OK
强化
- 编译器会捕捉到重载 lambda 的情况