Erreur de compilation C ++: a un initialiseur mais un type incomplet

104

Je suis en train de coder dans Eclipse et j'ai quelque chose comme ce qui suit:

#include <ftream>
#include <iostream>

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

Cependant, lorsque j'essaye de construire, j'obtiens l'erreur suivante: variable 'std::istringstream iss' has initializer but incomplete type

Des pensées rapides? J'ai cherché sur Google et il semble que la plupart des personnes ayant ce problème n'ont tout simplement pas inclus les bons fichiers d'en-tête, ce que je pense faire correctement.

Aneem
la source
11
std::istringstring? C'est dans l'en- <sstream>tête de toute façon, cependant.
chris
oups, j'ai mal tapé la question, je l'ai codée comme vous l'avez écrite, donc le problème est toujours le même
Aneem
oui, l'ajout de <sstream> l'a fait construire correctement, merci!
Aneem
2
Difficile de voir quelle est la justification de la réouverture. Je vais sauter et laisser les autres prendre la décision, mais cela semble être une simple erreur.
Aaron Hall

Réponses:

235

Vous en avez besoin, notamment:

#include <sstream>
Jive Dadson
la source
13
C'est pratiquement un bogue sur la bibliothèque standard; la classe a été trouvée mais pas la méthode laissant le programmeur dans l'ignorance du fichier à inclure à moins qu'il ne connaisse par cœur les noms de fichiers de bibliothèque standard, ce qui est une attente ridicule. J'espère que quelqu'un le signale comme un bug.
j riv