C++ "incomplete type is not allowed" 使用字符串流时
C++ "incomplete type is not allowed" when using stringstream
我有以下 C++ 代码
#include <iostream>
int main()
{
std::string sText = "These are words in my string!";
std::string sWord;
std::stringstream ss(sText);
}
并且它在带有 g++ 的 Fedora 上运行良好。但是,运行 它在 Windows 上与 Visual Studio(所以我猜是 clang)得到 incomplete type is not allowed
。这是我的代码错误,还是编译器之间存在一些差异?
注意:我试过 std::stringstream ss << sText;
但得到了完全相同的错误。
您未能#include <sstream>
。
这是允许编译的(任何标准 header 都可以包含任意数量的其他标准 header),但您通常应该包含 header 用于“东西” " 您正在使用(stringstream
在 <sstream>
中声明)。一旦你包含 header,VC++ 编译它就好了。
[谢谢 Remy] 由于您正在使用 std::string
,您还应该 #include <string>
。
我有以下 C++ 代码
#include <iostream>
int main()
{
std::string sText = "These are words in my string!";
std::string sWord;
std::stringstream ss(sText);
}
并且它在带有 g++ 的 Fedora 上运行良好。但是,运行 它在 Windows 上与 Visual Studio(所以我猜是 clang)得到 incomplete type is not allowed
。这是我的代码错误,还是编译器之间存在一些差异?
注意:我试过 std::stringstream ss << sText;
但得到了完全相同的错误。
您未能#include <sstream>
。
这是允许编译的(任何标准 header 都可以包含任意数量的其他标准 header),但您通常应该包含 header 用于“东西” " 您正在使用(stringstream
在 <sstream>
中声明)。一旦你包含 header,VC++ 编译它就好了。
[谢谢 Remy] 由于您正在使用 std::string
,您还应该 #include <string>
。