std::string getMyString() { return <make a string>; }
...
HANDLE something = OpenSomething(getMyString().c_str(), ...);
我读过Guaranteed lifetime of temporary in C++,我相信临时字符串会一直存在,直到赋值被评估为止,即足够长的时间才能使其按预期工作。这是一个正确的使用临时std ::字符串?
有一次,以前碰上std::string
寿命相关的bug(不记得这是什么),我宁愿仔细检查...
是的,好点 - 它不会。 – 2011-03-27 13:22:04