我们在一系列文件中定义了这些“实用”常量集。问题源于这样一个事实:太多文件包含这些全局常量文件,如果我们向其中一个文件添加常量并尝试构建,它会构建整个库,这需要一个多小时的时间。
有人能为这种方法提出更好的方法吗?我们将不胜感激。
首先,如果您直接在标头中定义它们,我建议将它们声明为 extern const,然后在 cpp 文件中定义它们:
//in .hpp:
extern const std::string foo;
//in .cpp:
const std::string foo = "FOO";
这样,至少可以在不重建的情况下更改定义。
其次,检查它们被包含在哪里。如果常量文件包含在低级标头中,是否可以将包含内容移动到 cpp 中?删除它可能会降低耦合,因此不必重建太多。
第三,分解该文件。我建议映射出您最终想要的结构,开始向新结构而不是旧文件添加新常量。最终(当您确定已经获得所需的结构时),将旧文件重构为新结构,并使旧文件包含整个结构。最后,检查并删除旧文件的所有包含内容,将它们指向适当的新部分。这会破坏重构,因此您不必一次完成所有工作。
第四,如果头文件发生更改,您可能可以欺骗编译器不进行重建。您必须检查编译器的文档,这可能不安全,因此您偶尔也想添加完整的构建。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)