lur*_*her 8 c++ constructor memory-management exception-handling
如果初始化unique_ptr如下:
std::unique_ptr<Foo> i;
i.reset( new Foo() );
Run Code Online (Sandbox Code Playgroud)
但抛出异常Foo::Foo(),问题是:内存分配会发生什么?unique_ptr如何避免泄露?这是在new运营商内部处理的吗?
当范围退出时,肯定会调用析构函数.由于在返回reset之前不调用调用new Foo(),所以new当异常离开构造函数时,似乎必须通过释放分配的内存来处理它.
这是怎么回事?