函数模板查找问题
Function template look-up issue
有人可以解释为什么以下代码在编译时给出错误(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()
{}
根据参数相关查找,这应该可以正常工作,因为我在"g"的参数中指定了N::
。因此,选择应该对编译器可见。
为什么 ADL 在这里不起作用?
你试过N::select吗?要么是那个,要么是
using namespace N
应该工作,因为简单的select
是不可见
任何时候你使用一个与你当前所在的命名空间不同的命名空间中的类时,你必须直接引用它(N::select
)或设置一个 using 命名空间 ( using namespace N;
) 或设置一个直接的 using 语句以供将来使用 ( using N::select
)
为了消除歧义,我会看看这个和这个,它们之间应该给你一个良好的开端,说明你如何/为什么你不能简单地调用选择。
干杯,并随时联系我以获取更多信息。
相关文章:
- 算法问题:查找从堆栈中弹出的所有序列
- 在 for 循环中查找问题时遇到困难
- 介绍类 在C++中查找圆半径的问题
- 查找不等式为真的次数时出现问题
- Distirbute Candy - 查找问题的最小可重现示例
- 查找在 4 和问题中代码失败的测试用例
- 在文本中查找半个单词"ABBA"的问题
- 查找有问题的宏
- 使用用户定义的函数查找数字的幂时出现问题
- 使用二分法查找数的平方根时出现问题
- 如何解决非限定名称查找问题
- 使用STD :: MAP在数据及其性能问题中查找重复项.我可以预先分配吗?
- 迭代列表以查找元素的出现.代码问题
- 在C++的数组中查找最低值时遇到问题
- 查找料箱包装问题中的所有可能变化
- 关于获取行和字符串查找函数的问题
- C++constexpr数组查找:内存开销?其他问题
- 我的递归算法中的问题,用于查找所有最短、唯一的路径
- 在二叉树中插入/查找问题
- 查找第一个文件问题无法使任何示例正常工作。