以独立的语句讲newed对象放入智能指针
用下面一段代码来解释:
int priority(); processWidget(shared_ptr(new Widget),priority()); shared_ptr pWid=new Widget();
上面第一段代码存在的问题主要是代码在调用函数processWidget的时候调用顺序可能是以下这种情况:processWidget(pwid,priority());
1.new widget
2.priority()函数
3.把new widget放到shared_ptr之中。
当priority函数抛出异常的时候,那么资源就造成了泄露,所以需要我们采用第二种方式以独立的语句讲newed对象放入智能指针