web-dev-qa-db-fra.com

Le type incomplet n'est pas autorisé: stringstream

Pourquoi cette ligne donne-t-elle l'erreur Error: incomplete type is not allowed?

stringstream ss;
89
pighead10

#include <sstream> et utilisez le nom complet, à savoir std::stringstream ss;

171
Prasoon Saurav

S'il-vous-plait ajoutez:

#include <sstream>
31
ybungalobill

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).

11
rakslice