2

我无法为我的 WinMobile 项目获取 std::tr1::shared_ptr,因为 WinCE 的 STL 由 Microsoft 的另一个团队维护:( aarrgh ...

有人使用过另一个线程安全的引用计数智能指针吗?我实际上正在使用看起来不错的 yasper。

非常感谢你。

4

5 回答 5

4

我还推荐 boost::shared_ptr。您可以像我为库所做的那样,使用 #define 在 std::tr1::shared_ptr 和 boost::shared_ptr 之间切换,具体取决于编译器的功能。这样,如果/当 CE 团队添加 tr1 支持时,您的代码就不需要修改 [太多]。只是我的2c。

于 2008-12-21T17:41:43.377 回答
3

提升智能指针。特别是boost::shared_ptr。我很确定您的平台支持它们。这就是 tr1::shared_ptr 的来源。

于 2008-12-21T04:56:21.843 回答
2

你看过STLPortDinkum TR1 库吗?两者都有一个更完整的 CE 端口。

于 2008-12-21T16:38:23.707 回答
0

yasper::ptr 似乎类似于 Boost Smart Pointers,虽然 shared_ptr 当然有更多的功能。

在稀缺的 yasper::ptr 文档中,出现了一个指针分配的示例:

 //preferred  
ptr<SomeClass> p1(new SomeClass);

 //less safe  
ptr<SomeClass> p2 = new SomeClass; 

为什么第二个 from 会“不那么安全”?

于 2008-12-21T05:09:57.107 回答
0

是的,我正在考虑使用 shared_ptr,但是 Visual C++ 2008 在 std::tr1 下没有它用于 WinCE 构建,所以我可以看看那些替代品,谢谢。我对 yasper::ptr 很满意,但我怀疑它是线程安全的。

于 2008-12-21T17:29:41.653 回答