#include <sstream>
#include <string>
using namespace std;
template<typename T>
string ToString(const T& obj)
{
ostringstream oss;
oss << obj;
//
// oss will never be used again, so I should
// MOVE its underlying string.
//
// However, below will COPY, rather than MOVE,
// oss' underlying string object!
//
return oss.str();
}
如何移动std::ostringstream的底层字符串对象?
2条答案
按热度按时间piv4azn71#
标准规定
std::ostringstream::str()
returns a copy .避免这种复制的一种方法是实现另一个
std::streambuf
派生类,直接公开字符串缓冲区。6pp0gazn2#
从C++20开始,你可以。