【发布时间】:2013-01-21 10:09:59
【问题描述】:
这是来自Does argument dependent lookup only search namespaces or classes too? 的后续问题,其中@David Rodríguez 说“ADL 将查看类型的封闭命名空间,以及类型本身的内部”。我可能听错了他试图说的话,但我正在尝试这个例子:
struct foo{
static void bar(foo* z){}
};
int main(){
foo* z;
bar(z);
}
它没有编译,产生错误“‘bar’没有在这个范围内声明”。 ADL是否不考虑静态成员函数?我的意思是在示例中关联的类是foo,所以 ADL 不会在类内部查看吗? .谁能在这里简化一下规则?
【问题讨论】:
-
Bump...发布的答案没有解决为什么 ADL 在此代码中找不到
bar的问题,而是讨论了朋友功能
标签: c++ argument-dependent-lookup