在c++参考中,我没有看到接受std::string
右值引用的std::stringstream
构造函数。是否有其他辅助函数可以将字符串移动到stringstream而不带开销,或者有特定的原因限制这样做?
std::string
右值引用参数的std::stringstream
构造函数。是否有其他的辅助函数可以将字符串以最小开销的方式移动到stringstream
中?或者是否由于某种特定原因,限制了这样的操作?在c++参考中,我没有看到接受std::string
右值引用的std::stringstream
构造函数。是否有其他辅助函数可以将字符串移动到stringstream而不带开销,或者有特定的原因限制这样做?
std::string
右值引用参数的std::stringstream
构造函数。是否有其他的辅助函数可以将字符串以最小开销的方式移动到stringstream
中?或者是否由于某种特定原因,限制了这样的操作?自C++20起,您可以将一个string
移动到stringstream
中:cppreference
对于C++20之前的版本:
我没有看到
std::stringstream
构造函数接受std::string
的右值引用
是的。即使str
设置器也不使用移动语义,因此不能将字符串移动到stringstream
中(不支持在当前标准中,但希望在下一个标准中支持)。
str()
是一个const
函数;它根本不允许修改stringstream
的数据。很容易创建API,允许移动字符串数据而不需要这样做。在移动到流中之后,字符串将是“有效但未指定的”。从流中移动后,流将是“有效但未指定的”。 - Nicol Bolas