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.


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>

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.