有人可以解释为什么以下代码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,这应该可以正常工作,因为我已经N::
在 `g`s 参数中指定了。因此,选择应该对编译器可见。
为什么 ADL 在这里不起作用?