C ++, почему iostream такой огромный - PullRequest
2 голосов
/ 19 марта 2020

Я работаю на встроенном устройстве (поэтому мы связываем данные c), и я пытался включить iostream

Однако, просто включив iostream (не создавая событие для любого потока), он взрывает мой Fla sh.

Заголовок IOStream кажется мне довольно невинным. Он включает в себя некоторые внешние определения, такие как

extern istream cin; /// Linked to standard input

Но так как ни один поток не является вызываемым, они никогда не должны быть связаны в stati c bianry.

Он имеет статус c также переменная static ios_base::Init __ioinit;

Поскольку объявлено состояние c, оно будет скопировано в каждую единицу перевода (однако размер ОЗУ составляет около 20 байтов, поэтому он не должен быть таким большим).

Возможны виртуальные встроенные шаблоны. Но у меня сложилось впечатление, что ни один шаблон не будет скомпилирован, если его не создать.

Так откуда же взялась огромная сумма fla sh, если iostream включен, но не используется?

...