Я начал изучать C++, и я прочитал книгу, в которой говорится, что я должен использовать заголовочный файл , потому что тип строки не встроен непосредственно в компилятор. Если я использую <iostream>
, я могу использовать тип строки.Должен ли я использовать #include <string> у <iostream>?
Должен ли я включать заголовок <string>
, когда я хочу использовать тип строки, если я включил заголовок <iostream>
? Зачем? Есть ли разница?
Это, вероятно, форвардная декларация строки ( содержит , которая включает в себя внедрение gcc). Я думаю, что это стандартное поведение (нужно было бы проверить стандарт, хотя), поэтому я считаю, что он может полагаться на него, когда ему не нужен полный тип. –
Aleph
@AnotherTest «Я могу использовать тип строки» - говорит мне, что ему нужен полный тип. Если он этого не сделает, то будет дана декларация, да. –
27.5.1 заявляет, что должен включать . Для этого требуется только 'char_traits', поэтому я не уверен, должен ли компилятор также пересылать объявление' string'. Я все еще сомневаюсь, что любая реализация iostream включает весь заголовок строки. –
Aleph