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>