Błąd kompilacji C ++: ma inicjator, ale niekompletny typ

106

Koduję w Eclipse i mam coś takiego:

#include <ftream>
#include <iostream>

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

Jednak gdy próbuję budować, pojawia się następujący błąd: variable 'std::istringstream iss' has initializer but incomplete type

Jakieś szybkie myśli? Przeszukałem go w Google i wygląda na to, że większość ludzi z tym problemem po prostu nie zawierała odpowiednich plików nagłówkowych, które, jak sądzę, robię poprawnie.

Aneem
źródło
11
std::istringstring? <sstream>Jednak i tak jest w nagłówku.
chris
ups, źle
wpisałem
tak, dodanie <sstream> sprawiło, że kompilacja przebiegła poprawnie, dzięki!
Aneem
2
Trudno dostrzec uzasadnienie ponownego otwarcia. Pominę i pozwolę innym podjąć decyzję, ale wydaje się, że jest to prosty błąd.
Aaron Hall

Odpowiedzi:

237

Potrzebujesz tego:

#include <sstream>
Jive Dadson
źródło
13
Jest to praktycznie błąd w bibliotece standardowej; klasa została znaleziona, ale nie metoda pozostawiająca programistę w ciemności, który plik ma dołączyć, chyba że zna na pamięć nazwy plików bibliotek standardowych, co jest absurdalnym oczekiwaniem. Mam nadzieję, że ktoś zgłosi to jako błąd.
j riv