在C++中分配名称空间

Mis*_*tyD 6 c++ namespaces c++11

关于命名空间我有点困惑.这就是我所知道的.通常,如果您在代码中有这样的名称空间

namespace foo
{ 
   namespace gfoo
   {
       class apple
       {..};
   }
}
Run Code Online (Sandbox Code Playgroud)

现在使用以下代码

using namespace foo::gfoo;
Run Code Online (Sandbox Code Playgroud)

您可以直接访问该类,apple而无需在类之前键入命名空间foo::gfoo::apple.

现在我在一些代码示例中看到过

namespace qi = boost::spirit::qi
Run Code Online (Sandbox Code Playgroud)

然后在方法中使用它

void someMethod()
 {
   using qi::char_
 }
Run Code Online (Sandbox Code Playgroud)

现在我的问题是做什么的目的是什么 namespace qi = boost::spirit::qi

Jim*_*son 18

它允许将一个(通常是复杂的)命名空间别名化为您选择的一个.

例如:

namespace fs = boost::filesystem;

......意味着你可以打电话......

fs::exists( myFilePath );

...无需经过写出来的努力......

boost::filesystem::exists( myFilePath );

... 每次.

这主要是为了方便.