C++ argument-dependent name lookup

概念:函数中参数的命名空间会添加到函数搜索列表中。

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>

namespace X {
class C {
};

void foo(C c) {
std::cout << "X::foo" << std::endl;
}
}

int main() {
X::C c;
foo(c);
return 0;
}