Ответ 1
#include <sstream>
и используйте полное имя, т.е. std::stringstream ss;
Почему эта строка дает ошибку Error: incomplete type is not allowed
?
stringstream ss;
#include <sstream>
и используйте полное имя, т.е. std::stringstream ss;
Пожалуйста, добавьте:
#include <sstream>
Ошибка incomplete type
возникает, когда компилятор знает, что идентификатор является типом, например, потому что у вас есть предварительное объявление этого (например, class stringstream;
), но он не видел его полного определения (class stringstream { ... };
).
Это может произойти для типа, который присутствует только через включенные заголовочные файлы - когда вы включили заголовочные файлы, которые используют тип, но не заголовочный файл, в котором определен тип. Для заголовка необычно не включать все необходимые заголовки, но не невозможно.
Для вещей из стандартной библиотеки, таких как класс stringstream
, используйте справочную документацию (например, страницы Unix man
, библиотека MSDN и т.д.), Чтобы выяснить, что вам нужно #include
, чтобы использовать его и какое пространство имен для найти его, если таковые имеются. Возможно, вам придется искать страницы, где появляется имя класса (например, man -k stringstream
).