2011-04-25 8 views
72

Pourquoi cette ligne donne-t-elle l'erreur Error: incomplete type is not allowed?Le type incomplet n'est pas autorisé: stringstream

stringstream ss; 
+0

Quels fichiers d'en-tête avez-vous inclus? –

+0

Je suppose qu'il y avait un '#include ' ou quelque chose que j'aurais dû utiliser? #include #include #include #include #include #include #include #include pighead10

Répondre

136

#include <sstream> et utiliser le nom complet c.-à-std::stringstream ss;

+2

oui, mais ... Quelle est l'erreur? –

+0

L'erreur est probablement due au fait que la chaîne strings est définie comme un type générique de quelque chose d'indéfini. – mireazma

28

S'il vous plaît, ajouter:

#include <sstream> 
+0

: D merci qui a travaillé pour moi! –

5

Un type incomplet est quand vous avez un avant-déclaration du type (par exemple class stringstream;), le compilateur sait donc que cet identificateur est un type, mais pas une définition complète (class stringstream { ... };).

Cela peut se produire lorsque vous avez inclus des en-têtes qui utilisent le type, mais pas l'en-tête dans lequel le type est défini.

Questions connexes