我认为这里的大多数 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;
你喜欢哪个?有时可以接受使用第一种方法吗?