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