我正在編寫由幾個「包」組成的實用程序庫。每個包中的類都包含在各種名稱空間中。我對如何通過在類聲明結尾自動聲明使用聲明來簡化情況有所瞭解(參見下文),這將避免程序員在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
這樣,想要這個擴展功能的程序員可以得到它。
這是一個好主意還是有我忽略的東西?