テンプレートを使用せずにADLの例を見せてもらえますか?そのようなものを見たことがない。私はここのようなものを意味します。具体的には、前述のような落とし穴につながる例に興味があります。
編集:
Tomalakの答えは落とし穴にまで拡張できると思います。このことを考慮:
namespace dupa {
class A {
};
class B : public A {
public:
int c;
B() {
}
};
void f(B b) {
printf("f from dupa called\n");
}
}
void f(dupa::A) {
printf("f from unnamed namespace called\n");
}
int main()
{
dupa::B b;
f(b);
return 0;
}
ここでは、名前のない名前空間からfが呼び出されることを期待していますが、代わりに別の名前空間が呼び出されます。