有人可以解释为什么以下代码在编译时给出错误(error C2065: 'select' : undeclared identifier
):
namespace N {
class MyClass{
};
template<int I> void select(MyClass*)
{}
}
void g (N::MyClass* mp)
{
select<10>(mp);
}
void main()
{}
根据Argument Dependent Lookup,这应该可以正常工作,因为我在`g``s参数中指定了N::
。因此,select应该对编译器可见。
为什么ADL不能在这里工作?