我认为这里的大多数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;
你喜欢哪个?是否有可能使用第一种方法?
您可以在单独的命名空间中定义类型,然后使用
using ns::MY_TYPE;