Dav*_*ave 3 c++ api api-design
我正在开发一个C++库.它让我想到了Java和C#处理的方式,包括库的不同组件.例如,Java使用"import"来允许使用来自其他包的类,而C#只使用"using"来导入整个模块.
我的问题是,在一个大型包含中#include库中的所有内容,然后只使用using指令导入特定的类和模块,这是一个好主意吗?或者这只是疯了吗?
编辑: 到目前为止回复良好,这里有一些减轻因素我觉得这个想法增加了:
1)内部#includes保持正常(简短到点)
2)包含所有内容的文件可选地随库提供给想要使用它的人
3)你可以选择将大包含文件作为pre的一部分编译头
你#include在C++中混淆了语句的目的.它们的行为与Java中的import语句或C#中的语句不同.#include做它说的话; 即,加载并解析整个指示文件作为当前翻译单元的一部分.单独包含的原因是不必花费编译时间来解析每个文件中的整个标准库.相反,您尝试制作的语句#include仅用于程序员组织目的.
#include用于管理编译过程; 不适用于分离用途.(事实上,您不能使用单独的标头来强制执行单独的使用,因为这样做会违反一个定义规则)
tl; dr - >不,你不应该这样做.#include尽可能少.当你的项目变得很大时,当你没有等待很多时间来编译你的项目时,你会感谢你自己.
| 归档时间: |
|
| 查看次数: |
595 次 |
| 最近记录: |