Error de compilación de C ++: tiene inicializador pero tipo incompleto

104

Estoy codificando en Eclipse y tengo algo como lo siguiente:

#include <ftream>
#include <iostream>

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

Sin embargo, cuando intento compilar, aparece el siguiente error: variable 'std::istringstream iss' has initializer but incomplete type

¿Alguna idea rápida? He buscado en Google y parece que la mayoría de las personas con este problema simplemente no incluyeron los archivos de encabezado correctos, lo que creo que estoy haciendo correctamente.

Aneem
fuente
11
std::istringstring? Sin <sstream>embargo, está en el encabezado.
chris
Ups, escribí mal la pregunta, la tengo codificada de la forma en que la escribiste, así que el problema sigue siendo el mismo
Aneem
sí, agregar <sstream> hizo que se construyera correctamente, ¡gracias!
Aneem
2
Es difícil ver cuál es la justificación para reabrir. Saltaré y dejaré que otros tomen la decisión, pero parece ser un simple error.
Aaron Hall

Respuestas:

234

Necesitas que esto incluya:

#include <sstream>
Jive Dadson
fuente
13
Esto es prácticamente un error en la biblioteca estándar; se encontró la clase, pero no el método, lo que dejó al programador sin saber qué archivo incluir, a menos que se sepa de memoria los nombres de los archivos de la biblioteca estándar, lo cual es una expectativa ridícula. Espero que alguien lo informe como un error.
j riv