我想利用ADL规则检查额外 namespace 中的功能:
假设我们有一个class X
。
class X
{
...
};
在通话中
X x;
f(x);
我希望编译器研究
namespace funky
,即直到现在与class X
无关。但是我不想在每次调用funky::f
时都放置f
来使代码困惑。实现此目的的一种方法是将
class X
定义为模板类,并带有一个来自namespace funky
的参数。template <typename Fake = funky::someClassFromFunky>
class X
{
...
};
对于现在的
f(x)
调用,编译器确实会寻找funky::f
。有没有更清洁/更简单的方法来实现相同的行为? (特别是,在
someClassFromFunky
的声明中引用某个任意类class X
很尴尬。) 最佳答案
您可以这样将f导入您的命名空间:
using funky::f;