【发布时间】:2012-07-27 13:19:51
【问题描述】:
我想利用 ADL 规则检查额外命名空间中的函数:
假设我们有一个class X。
class X
{
...
};
在通话中
X x;
f(x);
我希望编译器查看namespace funky,直到现在它与class X 无关。但我不想在每次调用f 时输入funky::f 来弄乱编码。
实现此目的的一种方法是将class X 定义为模板类,其参数来自namespace funky。
template <typename Fake = funky::someClassFromFunky>
class X
{
...
};
对于调用f(x),现在,编译器确实会寻找funky::f。
是否有更清洁/更简单的方法来实现相同的行为? (特别是在class X 的声明中引用一些任意的类someClassFromFunky 很尴尬。)
【问题讨论】:
标签: c++ namespaces argument-dependent-lookup name-lookup