在c ++参考中,我没有看到std::stringstream
构造函数接受std::string
的右值引用。是否有任何其他辅助函数可以将字符串移动到字符串流而没有开销,或者是否有一个特殊的原因来制定这样的限制?
答案 0 :(得分:6)
我没有看到
的右值引用std::stringstream
构造函数接受std::string
那是对的。即使str
setter也没有使用移动语义,因此不支持将字符串移动到stringstream
(不在当前标准中,但希望在下一个标准中)。
答案 1 :(得分:2)
您将能够在C ++ 20中将字符串移动到字符串流中。
constructor支持移动语义:
std::string myString{ "..." };
std::stringstream myStream{ std::move(myString) };
也可以在构造后通过调用str()
来完成:
std::string myString{ "..." };
std::stringstream myStream;
myStream.str(std::move(myString));