匿名の名前空間内の「名前空間を使用する」ステートメントで、以下が合法であるかどうかが尋ねられました
//file.cpp
//....
namespace
{
using namespace std;
}
int a(){
cout << "bla";
}
答えは「そうです」でした。さらに、ユニティ ビルド ( https://stackoverflow.com/a/6474774/484230 ).
私の質問: 匿名の名前空間はそのような問題から私を救いますか、それとも using ディレクティブはまだファイル境界を伝播できますか? https://stackoverflow.com/a/2577890/484230では、同様のアプローチが提案されました。匿名の名前空間でも機能し、本当に安全ですか? もちろんstd
悪い例ですが、たとえばusing namespace boost::assign;
、一部の cpp ファイルでは非常に便利です。