Kesalahan kompilasi C ++: memiliki penginisialisasi tetapi tipe tidak lengkap

104

Saya membuat kode di Eclipse dan memiliki sesuatu seperti berikut:

#include <ftream>
#include <iostream>

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

Namun, ketika saya mencoba membangun, saya mendapatkan kesalahan berikut: variable 'std::istringstream iss' has initializer but incomplete type

Ada pemikiran cepat? Saya telah mencari-cari di Google dan sepertinya kebanyakan orang dengan masalah ini tidak menyertakan file header yang benar yang saya yakin saya lakukan dengan benar.

Aneem
sumber
11
std::istringstring? Itu ada di <sstream>header.
chris
Ups, saya salah mengetik pertanyaan, saya telah mengkodekannya seperti yang Anda tulis sehingga masalahnya masih sama
Aneem
ya, menambahkan <sstream> membuatnya terbangun dengan benar, terima kasih!
Aneem
2
Sulit untuk melihat apa justifikasi untuk pembukaan kembali. Saya akan melewatkan dan membiarkan orang lain membuat keputusan, tetapi tampaknya itu kesalahan sederhana.
Aaron Hall

Jawaban:

234

Anda membutuhkan ini termasuk:

#include <sstream>
Jive Dadson
sumber
13
Ini secara praktis merupakan bug pada pustaka standar; kelas tersebut ditemukan tetapi bukan metode yang membiarkan programmer dalam kegelapan tentang file apa yang akan dimasukkan kecuali dia tahu nama file perpustakaan standar dengan hati, yang merupakan harapan yang konyol. Saya harap seseorang melaporkannya sebagai bug.
j riv