次のような設定があるとしましょう:
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?
}
問題は、ラムダ型の ADL が標準によってその名前空間でオーバーロードされた演算子を見つけるかどうかです。