ここにいるほとんどの C++ プログラマーは、グローバル名前空間を汚染することは悪い考えであることに同意すると思いますが、このルールを無視できる場合はありますか?
たとえば、特定のアプリケーション全体で使用する必要がある型があります。次のように定義する必要があります。
mytypes.h
typedef int MY_TYPE;
foo.cpp
MY_TYPE myType;
または、名前空間を使用します。
mytypes.h
namespace ns {
typedef int MY_TYPE;
}
foo.cpp
ns::MY_TYPE myType;
...
using namespace ns;
MY_TYPE myType;
どっちがいい?最初の方法を使用してもよい場合はありますか?