在命名空间中推导函数

时间:2015-01-06 22:32:22

标签: c++ namespaces

我一直认为在名称空间中调用函数需要使用using声明或完全限定名称。

但是,这段代码编译得很好。似乎命名空间中的参数具有魔力。任何人都可以解释为什么这个例外来自规则吗?

#include <iostream>

namespace A {

class B {};

void f(const B&)
{
  std::cout << "f\n";
}


} // A


int main(int argc, char* argv[])
{
  A::B b;
  f(b);
  return 0;
}

0 个答案:

没有答案