如果某个函数收到std::string&&
,是否有办法传递ostringstream
而不创建一个完全复制底层缓冲区的临时流?
答案 0 :(得分:1)
最终你必须复制缓冲区,因为它与std::string
所需的结构不同,并且没有std::string
移动构造函数接受std::ostringstream&&
。 std::ostringstream::str()
方法将缓冲区的值复制到std::string
实例中。然后,您可以使用接受std::string&&
的方法移动该字符串。