Erro de compilação C ++: tem inicializador, mas tipo incompleto

104

Estou codificando no Eclipse e tenho algo parecido com o seguinte:

#include <ftream>
#include <iostream>

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

No entanto, quando tento construir, recebo o seguinte erro: variable 'std::istringstream iss' has initializer but incomplete type

Algum pensamento rápido? Pesquisei no Google e parece que a maioria das pessoas com esse problema simplesmente não incluiu os arquivos de cabeçalho corretos, o que acredito estar fazendo corretamente.

Aneem
fonte
11
std::istringstring? De <sstream>qualquer forma, está no cabeçalho.
Chris
opa, digitei a pergunta errado, codifiquei da maneira que você escreveu, então o problema ainda é o mesmo
Aneem
Sim, adicionar <sstream> tornou a compilação correta, obrigado!
Aneem
2
É difícil ver qual é a justificativa para a reabertura. Vou pular e deixar que outros tomem a decisão, mas parece ser um erro simples.
Aaron Hall

Respostas:

234

Você precisa que isso inclua:

#include <sstream>
Jive Dadson
fonte
13
Isso é praticamente um bug na biblioteca padrão; a classe foi encontrada, mas não o método, deixando o programador no escuro sobre qual arquivo incluir, a menos que ele saiba de cor os nomes dos arquivos da biblioteca padrão, o que é uma expectativa ridícula. Espero que alguém relate isso como um bug.
j riv