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.


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>

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.