【发布时间】:2014-01-22 14:04:35
【问题描述】:
我正在从Memory Error with std:ostringstream and -std=c++11? 舔我的伤口,我有一个相关的问题。
如果以下返回一个临时值,使reserve 无效且char* 无效:
ostringstream oss;
oss.str().reserve(96);
// populate oss
const char* ptr = oss.str().c_str();
// do something with ptr
那么下面怎么清除ostringstream(来自How to reuse an ostringstream?):
oss.clear(); oss.str("");
我知道clear() 将重置流的标志;但据我现在了解,str("") 将在临时字符串上运行,而不是在底层字符串上运行。
那么str("") 是如何重置流的呢?
【问题讨论】:
标签: c++ string stringstream temporary-objects