我知道有一种情况是在像h(f(g()), j())这样的函数调用中,j可以在任何时候相对于g和f执行。这基本上是唯一的例子,还是有其他的例子?出于动机,std::make_shared<T>和std::make_unique<T>函数可以用于编写更多的异常安全代码,如来自的不安全代码示例所示:
// In some header file:void f( std::unique_ptr<
根据,在以下代码中存在潜在的经典内存泄漏和异常安全问题:void f( T1*, T2* );
// In some implementation对象并取消其内存分配。为了允许这样做,表达式求值规则是以一种不例外安全的方式指定的,因此,如果您想编写异常安全的代码,那么需要了解和避免这些情况。(关于如何最好地做到这一点,请参阅下面。)这个答案让我有点困惑,为了处理构造函数失败,我们应该根据 从构