论函数调用中的异常安全性

时间:2011-01-19 08:39:52

标签: c++ function-call exception-safety

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()函数调用的原子性时,它是否有任何区别?

1 个答案:

答案 0 :(得分:5)

是的,这是例外的安全;不,inline对调用表达式中保证的序列点没有任何影响。