我的库使用了几个嵌套的命名空间,如下所示:
Library name
Class name 1
Class name 2
Class name 3
[...]
Utilities
Class name 1
[...]
Class name 2
[...]
Class name 3
[...]
[...]
"Utilities" 命名空间包含有用的类扩展,这些扩展不值得被包含在实际的类中。
"Library name" 命名空间是必要的,因为它避免了与其他库的广泛冲突,"Utilities" 命名空间是必要的,以避免由于像这样的事情而产生的歧义,而其中的 "Class name" 命名空间避免了针对类似类编写的实用程序之间的名称冲突。
尽管如此,在实践中仍然非常麻烦。例如,考虑以下内容:
MyLibrary::MyContainer<int> Numbers = MyLibrary::Utilities::MyContainer::Insert(OtherContainer, 123, 456);
// Oh God, my eyes...
这让我觉得自己做错了什么事情。有没有更简单的方法来保持组织、直观和明确?