我正在编写由几个“包”组成的实用程序库。每个包中的类都包含在各种名称空间中。我对如何通过在类声明结尾自动声明使用声明来简化情况有所了解(参见下文),这将避免程序员在cpp文件中执行它。声明命名空间声明后使用语句
namespace Utility
{
class String
{
// Class Implementation
};
}
using Utility::String;
我的理解是,如果用户包括头STRING.H和字符串在公用那么程序员将要使用的字符串。显然这可能是坏的,如果有外部类链包括一堆文件弄脏名称空间,所以我认为如何使它成为#define代替。
namespace Utility
{
class String
{
// Class Implementation
};
}
#ifdef AUTO_DECLARE_NAMESPACE
using Utility::String;
#endif
这样,想要这个扩展功能的程序员可以得到它。
这是一个好主意还是有我忽略的东西?