Ошибка компиляции C ++: есть инициализатор, но неполный тип

106

Я кодирую в Eclipse и получаю что-то вроде следующего:

#include <ftream>
#include <iostream>

void read_file(){
    char buffer[1025];
    std::istringstream iss(buffer);
}

Однако, когда я пытаюсь построить, я получаю следующую ошибку: variable 'std::istringstream iss' has initializer but incomplete type

Какие-нибудь быстрые мысли? Я погуглил, и кажется, что большинство людей с этой проблемой просто не включили правильные файлы заголовков, которые, как мне кажется, я делаю правильно.

Аним
источник
11
std::istringstring? Впрочем, это <sstream>все равно в шапке.
Крис
упс, я неправильно набрал вопрос, у меня он закодирован так, как вы написали, так что проблема все та же
Aneem
да, добавление <sstream> сделало сборку правильно, спасибо!
Aneem
2
Трудно понять, в чем оправдание повторного открытия. Я пропущу и позволю другим принять решение, но это простая ошибка.
Аарон Холл

Ответы:

237

Вам нужно это включить:

#include <sstream>
Джайв Дадсон
источник
13
Это практически ошибка стандартной библиотеки; был найден класс, но не метод, оставляющий программиста в неведении относительно того, какой файл включать, если он не знает наизусть имена файлов стандартной библиотеки, что является нелепым ожиданием. Я надеюсь, что кто-то сообщит об этом как об ошибке.
j riv