为什么这一行会出错[{1}}?
Error: incomplete type is not allowed
答案 0 :(得分:162)
#include <sstream>
并使用完全限定名称,即std::stringstream ss;
答案 1 :(得分:30)
请添加:
#include <sstream>
答案 2 :(得分:8)
一个不完整的类型是你有一个类型的前向声明(例如class stringstream;
),所以编译器知道这个标识符是一个类型,但不是它的完整定义(class stringstream { ... };
)
当您包含使用该类型的标头但不包含定义类型的标头时,可能会发生这种情况。
对于标准库中的内容,例如stringstream
类,请使用参考文档(例如Unix man
页面,MSDN等)来确定{{1}所需的内容如果有的话,使用它以及找到它的命名空间。您可能需要搜索出现班级名称的页面(例如#include
)。