// PR c++/57874 // { dg-do compile { target c++11 } } namespace NX { struct X {}; void foo(X) {} } namespace NY { struct Y {}; } template auto ADLfoo(T&&) -> decltype((foo(T{}), short())); char ADLfoo(...); static_assert(sizeof(ADLfoo(NY::Y{})) == 1, ""); static_assert(sizeof(ADLfoo(NX::X{})) == 2, "");