«использование пространства имен x» внутри пространства имен в заголовке

Если я правильно понял Рэймонда Чена, это опасно, но я не могу точно понять, почему. http://gotw.ca/publications/migrating_to_namespaces.htm

Чтобы внести ясность, речь идет не о загрязнении глобального пространства имен из-за того, что заголовки внедряют целые пространства имен в глобальную область видимости, и речь идет не об общем случаеusing namespace xyzzy;который некоторые считают вредным, однако он используется.

моймодуль.ч

      #include <string>

// using namespace std;  -- this would be dangerous, and we should never do it

namespace MyModule
{
  using namespace std;  // but, why is this dangerous?

  string foo();
}

моймодуль.cpp

      #include "mymodule.h"

namespace MyModule
{
  using namespace std;

  string foo() 
  {
    return "bar";
  } 
}

0 ответов

Другие вопросы по тегам