2010-03-26 51 views
0

我正在研究Windows CE和Mobile的“共享”功能的智能指针,其中VS 2008 tr1 std::shared_ptr无法使用(由于链接到CE上不存在的v.9 dll,显然,如果我理解正确)。有没有人给这些智能指针(auto_any,scoped_any,shared_any)一个试驾?

有一篇MSDN杂志的半年刊文章,来自Microsoftie(Eric Niebler)的消息来源:Achieve More Reliable Resource Management with Our Custom C++ Classes

他的shared_any的推理,设计和实现看起来很稳定,但我想知道是否有人在任何平台(不一定是WinCe/WM)上实际测试过这个地段?

回答

5

您可能需要使用boost::shared_ptr。据我了解,Boost.SmartPointer库是一个仅包含头文件的库,因此您可以将Boost中需要的头文件复制到一切工作中。

+2

请确保不要对数组使用boost :: shared_ptr,除非您在shared_ptr构造函数中指定了析构函数。如果没有lambda语法,这是很难处理的,所以你可能还想使用boost :: shared_array – Steve 2010-03-26 07:50:51

+0

@Steve:在std :: vector中使用boost :: shared_ptr元素没有问题,对吧? – 2010-03-29 06:13:21

+0

@Johann,应该没问题,当它超出范围时,矢量会调用对象的destrutor – Steve 2010-03-30 18:38:16