我正在嵌入式设备上工作(因此我们链接为静态),并且我试图包括iostream
不过,只要包含iostream(而不是事件实例化任何流),它就会爆炸我的Flash。
IOStream标头对我来说似乎很无辜。它包括一些外部定义,例如
extern istream cin; /// Linked to standard input
但是由于没有流被调用,所以永远不要将它们链接到静态bianry中。
它也有一个静态变量
static ios_base::Init __ioinit;
由于声明为静态,它将被复制到每个转换单元(但是RAM大小约为20个字节,因此不应太大)。
可能有虚拟内联模板。但是我给人的印象是,如果不实例化模板,将不会编译任何模板。
那么,如果包含但不使用iostream,那么巨大的闪存量从何而来?