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.


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>

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.