假设我有这样的设置:
namespace hi {
template<typename L, typename R> L operator+(L l, R r) {
// some body
}
auto f() {
return [] {}; // Legal C++14
}
}
int main() {
auto x = hi::f();
1 + x; // Is this legal?
}
问题是 lambda 类型上的 ADL 是否会按标准在该命名空间中找到重载运算符。