incomplete type
- это когда компилятор знает, что идентификатор является типом, например, потому что у вас есть его предварительное объявление (например, class stringstream;
), но он не видел его полного определения (class stringstream { ... };
).
Это может произойти для типа, который присутствует только через включенные заголовочные файлы - когда вы включили заголовочные файлы, которые используют тип, но не заголовочный файл, в котором определен тип.
Для вещей из стандартной библиотеки, такой как класс stringstream
, используйте справочную документацию (например, страницы Unix man
, библиотека MSDN и т. Д.), Чтобы выяснить, что вам нужно #include
, чтобы использовать его и в каком пространстве имен его найти, если он есть. Возможно, вам придется искать страницы, на которых указано имя класса (например, man -k stringstream
).