Ошибка компиляции 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.