nac*_*o4d 19 c++ pointers smart-pointers std auto-ptr
我正在学习有关智能指针(std::auto_ptr),只是看这里和这里是智能指针(std::auto_ptr)不应该在容器(即放std::vector),因为即使大多数编译器不会抱怨,这似乎是正确的.没有规则说智能指针不会在内部复制(vector例如按类)并传输其所有权,然后指针将变为NULL.最后,一切都会搞砸.
实际上,这种情况多久发生一次?
有时我有指针的向量,如果在将来我决定我想要一个智能指针的矢量我会选择什么?
我知道C++ 0x和Boost库,但是现在,我更倾向于坚持使用STL方法.
wil*_*ell 16
是的,你真的不能使用std::auto_ptr标准容器.std::auto_ptr副本不等同,并且因为允许标准容器(和算法)随意复制它们的元素,这会搞砸.也就是说,复制的操作std::auto_ptr具有的意义等不是一个对象的纯粹副本:它意味着转让所有权.
你的选择是:
| 归档时间: |
|
| 查看次数: |
19106 次 |
| 最近记录: |