不允许使用不完整类型:stringstream
Incomplete type is not allowed: stringstream
为什么这行给出错误Error: incomplete type is not allowed
?
stringstream ss;
#include <sstream>
并使用完全限定名即std::stringstream ss;
一些系统头文件提供了std::stringstream
的前向声明,但没有定义。这使它成为"不完整类型"。要解决这个问题,您需要包含<sstream>
头文件中提供的定义:
#include <sstream>
incomplete type
错误是当编译器遇到它知道是类型的标识符的使用时,例如,因为它已经看到了它的前向声明(例如class stringstream;
),但它还没有看到它的完整定义(class stringstream { ... };
)。
这种情况可能发生在您没有在自己的代码中使用但仅通过包含的头文件出现的类型上——当您包含了使用该类型的头文件,而不是定义该类型的头文件时。头文件本身不包含所需的所有头文件是不寻常的,但并非不可能。
对于来自标准库的东西,例如stringstream
类,使用语言标准或其他类或单个函数的参考文档(例如Unix man
页面,MSDN库等)来确定使用#include
需要什么以及在什么命名空间中找到它。您可能需要搜索出现类名的页面(例如man -k stringstream
)。
相关文章:
- ArduinoJson 6.15.2:JsonObject没有命名类型
- 防止主数据类型C++的隐式转换
- 大量序列中核苷酸类型的快速计数
- 如何从C++中的依赖类型中获得它所依赖的类型
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 是否可以初始化不可复制类型的成员变量(或基类)
- 如何获取std::result_of函数的返回类型
- 从 std::stringstream 读取uint8_t为数字类型
- StringStream的Str方法将不起作用.(不同类型的串联)(C )
- 错误 C2678:二进制">>":找不到采用类型为"std::stringstream "的左操作数的运算符
- Qt c++ 聚合'std::stringstream ss'类型不完整且无法定义
- 左操作数的类型为 'std::stringstream (__cdecl *)(std::string)'
- std::stringstream 不命名类型(全局)
- "std::stringstream::operator>>()"无法欺骗模板类型
- C++ 分词器变量中的错误'std::stringstream mystream'具有初始值设定项但类型不完整
- 使用一个stringstream函数参数接受多个类型
- 将uint8 vector类型的元素转换为stringstream类型
- 不允许使用不完整类型:stringstream
- 聚合'std::stringstream out'具有不完整的类型,无法定义 [C++]
- 不使用stringstream将char*转换为任意数字类型