微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以使用模块支持或导入功能来避免包含大量 C++ 标准库头文件吗?

如何解决我可以使用模块支持或导入功能来避免包含大量 C++ 标准库头文件吗?

如果我在标题中编写一个类并且我想使用 std::is_integral 之类的东西,我需要在标题本身中包含 。这意味着,无论我在哪里使用我的类,我都会包含(我认为是 4000 行)来自 代码及其包含的标题。如果它是一个类,我在我的项目中只包含 5 次,那就是我的项目中要编译的 20,000 行额外代码。如果我错了,请纠正我,但编译器会解析这 20,000 行中的每个字符,而不仅仅是我使用的标头部分(称为函数等)。当我的意思是解析时,我不是说编译,但它至少必须做任何事情来注意代码中的错误。我注意到,当我开始一个新项目时,编译时间非常好,但是在添加一些内容之后,编译时间确实急剧增加,而且我觉得做这样的事情(不必要地编译数千行代码)是这样做的原因。

我尝试了一些解决方法,例如在一种情况下我需要 std::remove_reference,并且为了避免包含 4000 行代码,我只提供了我自己的版本,但在某些情况下你不能。在我需要标准库类或函数的情况下,比如 std::is_integral,我是否绝对必须包含所有标头,或者是否支持仅导入该类/模板? C++ 模块支持这个吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。