我无法为我的 WinMobile 项目获取 std::tr1::shared_ptr,因为 WinCE 的 STL 由 Microsoft 的另一个团队维护:( aarrgh ...
有人使用过另一个线程安全的引用计数智能指针吗?我实际上正在使用看起来不错的 yasper。
非常感谢你。
我无法为我的 WinMobile 项目获取 std::tr1::shared_ptr,因为 WinCE 的 STL 由 Microsoft 的另一个团队维护:( aarrgh ...
有人使用过另一个线程安全的引用计数智能指针吗?我实际上正在使用看起来不错的 yasper。
非常感谢你。
我还推荐 boost::shared_ptr。您可以像我为库所做的那样,使用 #define 在 std::tr1::shared_ptr 和 boost::shared_ptr 之间切换,具体取决于编译器的功能。这样,如果/当 CE 团队添加 tr1 支持时,您的代码就不需要修改 [太多]。只是我的2c。
提升智能指针。特别是boost::shared_ptr。我很确定您的平台支持它们。这就是 tr1::shared_ptr 的来源。
你看过STLPort或Dinkum TR1 库吗?两者都有一个更完整的 CE 端口。
yasper::ptr 似乎类似于 Boost Smart Pointers,虽然 shared_ptr 当然有更多的功能。
在稀缺的 yasper::ptr 文档中,出现了一个指针分配的示例:
//preferred
ptr<SomeClass> p1(new SomeClass);
//less safe
ptr<SomeClass> p2 = new SomeClass;
为什么第二个 from 会“不那么安全”?
是的,我正在考虑使用 shared_ptr,但是 Visual C++ 2008 在 std::tr1 下没有它用于 WinCE 构建,所以我可以看看那些替代品,谢谢。我对 yasper::ptr 很满意,但我怀疑它是线程安全的。