IIn*_*ble 7 c++ operator-precedence c++17
在他的2014年CppCon演讲中,主持人Jon Kalb 展示了以下函数调用:
Run Code Online (Sandbox Code Playgroud)FooBar( smart_ptr<Foo>( new Foo( f ) ), smart_ptr<Bar>( new Bar( b ) ) );
在"Smart Pointer'Totcha'标题下,他总结道,这不是例外安全的.由于函数参数的评估是无序的和无序的,因此存在机会窗口,其中异常可能导致资源泄漏.
虽然我认为在声明发布时这是正确的,但我不认为在C++ 17中仍然如此,其中函数参数的评估仍然是无序的,但是相对于彼此排序.
问题:这是正确的,如果是,那么在C++ 17中发布的代码是异常安全的吗?