Why does this line give the error Error: incomplete type is not allowed
?
stringstream ss;
#include <sstream>
and use the fully qualified name i.e. std::stringstream ss;
Please, add:
#include <sstream>
An incomplete type
is when the compiler knows the identifier is a type, for instance because you have a forward-declaration of it (e.g. class stringstream;
), but it hasn't seen a full definition for it (class stringstream { ... };
).
This could happen for a type that is only present through included header files -- when you've included header files that use the type, but not the header file where the type is defined.
For things from the standard library, such as the stringstream
class, use the reference documentation (e.g. Unix man
pages, MSDN library, etc.) to figure out what you need to #include
to use it and what namespace to find it in if any. You may need to search for pages where the class name appears (e.g. man -k stringstream
).
来源:https://stackoverflow.com/questions/5781597/incomplete-type-is-not-allowed-stringstream