f()
的调用是异常安全的吗?
inline std::auto_ptr<C> auto_new() {
return std::auto_ptr<C>(new C());
}
void f(std::auto_ptr<C> p1,
std::auto_ptr<C> p2);
// ...
{
f(auto_new(), auto_new());
}
换句话说,如果第一个和第二个 auto_new()
函数调用是内联的,那么这两个函数调用的原子性有什么不同吗?
最佳答案
是的,它是异常安全的;不,inline
对调用表达式中保证的序列点没有影响。
关于c++ - 关于函数调用中的异常安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4733224/