Pourquoi cette ligne donne-t-elle l'erreur Error: incomplete type is not allowed
?
stringstream ss;
#include <sstream>
et utilisez le nom complet, à savoir std::stringstream ss;
S'il-vous-plait ajoutez:
#include <sstream>
Un incomplete type
est le moment où le compilateur sait que l’identifiant est un type, par exemple parce que vous en avez une déclaration directe (par exemple, class stringstream;
), mais il n’a pas encore trouvé de définition complète (class stringstream { ... };
).
Cela peut se produire pour un type présent uniquement dans les fichiers d'en-tête inclus - lorsque vous avez inclus des fichiers d'en-tête qui utilisent le type, mais pas le fichier d'en-tête dans lequel le type est défini.
Pour les éléments de la bibliothèque standard, tels que la classe stringstream
, utilisez la documentation de référence (par exemple, pages Unix man
, bibliothèque MSDN, etc.) pour déterminer ce dont vous avez besoin pour #include
pour l'utiliser et dans quel espace de noms le trouver, le cas échéant. Vous devrez peut-être rechercher les pages contenant le nom de la classe (par exemple, man -k stringstream
).