Я только что заметил, что мои программы, использующие строковый класс, компилируются без включения заголовка <string>
.Оказывается, что <iostream>
включает <ios_base>
, что, в свою очередь, включает <string>
.
Это плохая практика, и я должен явно включать <string>
?Даже если это просто пример ясности?
Можно ли предположить, что это относится не только к заголовку <string>
?Возможно, это зависит от реализации и или стандартное состояние заголовка <string>
должно быть включено через <ios_base>
и <iostream>
?Обеспечение того, чтобы любая уважаемая и широко используемая реализация всегда включала <string>
, если существует вызов <iostream>
.