【发布时间】:2014-08-12 08:48:17
【问题描述】:
当参数中构造的对象被破坏时,函数调用之前还是之后?
例如下面的代码安全吗?
void f(const char*)
{ ... }
std::string g()
{ ... }
...
f(g().c_str());
它总是对我有用,但我不知道它只是未定义的行为还是它实际上应该有效。
【问题讨论】:
-
而不是使用 g().data() 使用 g().c_str(),只是一个想法......
-
@jamolnng 这对手头的问题没有影响。
-
后来我才意识到,这就是我纠正它以添加相关信息的地方
-
@jamolnng 我修好了,data() 没有空终止符。
标签: c++