在Windows上取得圆满成功之后,我只是想在Linux上编译以下代码:
std::string str = stream.str();
auto decrement = [](char c) { return c - 100; };
std::transform(str.begin(), str.end(), str.begin(), decrement);
stream = std::stringstream(str); // LINE ACCUSING ERROR
我尝试重新设置std :: stringstream时收到的错误是:
158:错误:使用已删除的函数'std :: basic_stringstream& 的std :: basic_stringstream ::运算符=(const的 std :: basic_stringstream&)'stream = std :: stringstream(str); ^
答案 0 :(得分:3)
std::stringstream
不可复制,但只能移动(自C ++ 11起)。我的猜测是你使用g ++ 4.9或更早版本,即使它支持C ++ 11,它也不完全支持流的移动语义。 g ++ 5及更高版本编译代码。
报告的错误日期回溯到4.7,已修复为5.x https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54316