ADL是否与命名的lambdas一起使用?

Ral*_*zky 1 c++ lambda argument-dependent-lookup c++11

假设我在一个命名空间中有一个类和一个命名的lambda.

namespace bla {
    class X { /* ... */ };
    static auto lambda = []( X param ){ /* ... */ };
}
Run Code Online (Sandbox Code Playgroud)

这个lambda几乎等同于一个内联声明的函数.但是我可以从另一个不相关的命名空间调用lambda而不提及bla使用ADL 的命名空间(依赖于参数的查找,也称为Koenig查找)?

namespace blub {
    void f() {
        bla::X x;
        lambda( x ); // Does this compile?
    }
}
Run Code Online (Sandbox Code Playgroud)

Xeo*_*Xeo 7

lambda不是一个函数,而是一个可以像函数一样调用的对象.因此,它没有得到功能处理,它的调用不受ADL的约束.