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.


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>

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.