gpt4 book ai didi

c++ - 防止cin、cout、cerr被实例化

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:06:24 24 4
gpt4 key购买 nike

this 中所述回答,包括iostream库的二进制大小变得更大,因为 std::cin , std::cout , std::cerr (可能还有更多)对象被创建,因此占用大量内存。

我经常为对内存有严格限制的嵌入式平台编译代码。在包含 iostream 之后二进制文件变得如此之大以至于无法放入内部闪存。这反过来会影响可以包含的库,因为其中很多包含 <iostream> .其中一个例子可以是 Protobuf我不能在多个项目中使用的库,因为它包含 iostream .

对于那些在嵌入式平台上运行的目标,我不需要创建对象,因为我永远不会使用它。问题是:我能以某种方式阻止创建这些对象吗?是否有其他一些解决方法允许包含使用 iostream 的库并且不要将二进制文件的大小增加太多?

最佳答案

你不能用标准的方式,因为<iostream>需要定义这些变量。如果您不想要变量,那么您必须直接包含标题(如 <ios><streambuf><istream><ostream> 和/或 <iosfwd> )。我假设你想包括 <iostream>对于那些 header 中定义的类。如果您使用的某些第三方库包含您不想要的内容,那么您必须咨询此类库的作者,没有通用的答案。

关于c++ - 防止cin、cout、cerr被实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57572527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com