我希望始终使用C++11智能指针,使用传统的指针语法(这有点类似于Java语法),因为我不想担心内存管理,所以我认为用自定义操作符重载新操作符是个好主意,换句话说创建指向obj的传统指针,我想让它创建智能指针,如下所示
obj *o = new obj(); // o will be deleted automatically
但是,当使用智能指针时,选中-删除是否过时,或者至少是C++11的智能指针的一个子集?据我所知,[C++11 standard @ expr.delete]删除原始指针是未定义的行为。在我的机器上,gcc 4.8显示了一些有关这方面的警告,但是会编译,而且A的析构函数没有被适当调用。但是聪明的指针呢?正如我所读过的,unique_ptr和shared_ptr必须按照c++11标准工作。但这两个链接文档都表明,auto_ptr无法工作。