c++ - 关于函数调用中的异常安全

标签 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() 函数调用是内联的,那么这两个函数调用的原子性有什么不同吗?

最佳答案

是的,它是异常安全的;不,inline 对调用表达式中保证的序列点没有影响。

关于c++ - 关于函数调用中的异常安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4733224/

相关文章:

c++ - 非UB constexpr函数将 float 或 double 位移位?

c++ - 如何间接调用 C 函数

c++ - 用于 Linux 的 PostMessage

c++ - 如何模拟方法模板的虚拟性

parsing - Julia 的宏可以访问嵌套函数吗?

arrays - ionic 和 Angular : Inserting Function Names with ngFor

java - synchronized 关键字异常安全吗?

java - 调用对象时这些括号是什么意思?

c++ - std::list 的多元素插入是强异常安全的吗?

c++ - C++ 隐式生成的赋值运算符的异常安全性