简体   繁体   中英

Is there a way to std::move std::string into std::stringstream

In the c++ reference I do not see a std::stringstream constructor accepting rvalue reference of std::string . Is there any other helper function to move string to stringstream without an overhead or is there a particular reason behind making such limitation?

I do not see a std::stringstream constructor accepting rvalue reference of std::string

That's right. Even the str setter doesn't utilize move semantics, so moving a string into stringstream is not supported (not in the current standard, but hopefully in the next one).

You'll be able to move a string into a string-stream in C++20.

Move semantics are supported by the constructor :

std::string myString{ "..." };
std::stringstream myStream{ std::move(myString) };

It can also be done after construction by calling str() :

std::string myString{ "..." };
std::stringstream myStream;
myStream.str(std::move(myString));

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM