【发布时间】:2014-02-12 18:28:24
【问题描述】:
是否可以在 C++ 中创建类似于在 C# 中的工作方式的命名空间层次结构。例如,如果我需要一个类型来处理 C# 中的颜色,我可以通过使用以下方法深入命名空间以获得适当的类型:
System.drawing.color;
类型。在这种情况下,命名空间似乎是在项目级别解析的,并由包含该类型的命名空间决定。对于此代码所针对的开发人员,他们可以在自动完成中获得所有这些内容,并且无需在文件夹和文件中搜索该类型。在 C++ 中,我可能必须首先包含适当的头文件,此时我觉得我们已经经历了为适当类型查找源代码并找到包含这些类型的文件的麻烦。在 C++ 中,它看起来像:
#include "Core/Color.h"
Color c = new Color();
IDE 在这里给我的帮助很少。我必须对正确的类型进行目录搜索。除非每个人都专门使用正确的文件名和目录结构,否则目录范式似乎会崩溃,但情况并非总是如此。
要解决这个问题,看起来我不仅需要为我的所有类型提出一个命名空间层次结构,这不是一个大问题,而且我还必须提出一个标题层次结构消除不断搜索代码以查找包含这些类型的正确文件的问题。
主标头层次结构是否会给编译器、预处理器或生成的编译代码带来问题,因为我们基本上会将链上的所有其他标头(当然最多)都包含在新文件中?
最后,我想要一种方法来帮助使用此代码的开发人员,让他们的 IDE 可以深入了解所有类型,而无需执行我们目前必须执行的所有 grepping。可能已经有一种方法可以在 IDE 中快速执行此操作,此时我不需要利用语言本身来解决此类开发问题,但是我似乎找不到它。
【问题讨论】: