«использование пространства имен 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";
}
}