dim*_*mba 77 c++ standards smart-pointers auto-ptr unique-ptr
Dav*_*eas 76
更新:这个答案写于2010年,正如预期的那样std::auto_ptr已被弃用.建议完全有效.
在C++中,0x std::auto_ptr将不赞成使用std::unique_ptr.智能指针的选择取决于您的使用案例和您的要求,std::unique_ptr可以在容器内使用单个所有权的移动语义(使用移动语义)和std::shared_ptr共享所有权.
您应该尝试使用最适合该情况的智能指针,选择正确的指针类型可以让其他程序员深入了解您的设计.
R S*_*hko 22
是的,截至今天auto_ptr将在C++ 0x中弃用,您应该使用unique_ptr.根据最新的标准草案(n3035),第D.9节
auto_ptr不推荐使用类模板.[注意:类模板unique_ptr(20.9.10)提供了更好的解决方案. - 尾注]
在批准标准之前,委员会总是有可能修改这一决定,尽管我觉得这个决定不太可能.
Max*_*ant 15
不仅在C++ 11(D.10,第1228页)中auto_ptr已弃用,它也将在未来的C++版本中删除:
采用N4190和实际删除(不只是不建议使用)几个古老的东西从C++标准库,包括
auto_ptr,bind1st/bind2nd,ptr_fun/mem_fun/mem_fun_ref,random_shuffle和几个.现在,这些都已从C++ 17标准库草案中删除,并且不会成为未来可移植C++的一部分.
关于它的另一个文档:编程语言C++,图书馆演变工作组 - 文档N4190,如果您想了解更多信息.
您可以使用auto_ptrautomaticaly 转换任何代码,使用unique_ptr:
任何使用的代码
auto_ptr都可以机械地转换为使用unique_ptr,move()只要auto_ptr被"复制"就插入.
| 归档时间: |
|
| 查看次数: |
37920 次 |
| 最近记录: |