2

WinCE の STL は Microsoft の別のチームによって維持されているため、WinMobile プロジェクトの std::tr1::shared_ptr を取得できません :( 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

STLPortまたはDinkum TR1 ライブラリを見ましたか? 両方とも、CE 用のより完全なポートを備えています。

于 2008-12-21T16:38:23.707 に答える
0

はい、shared_ptr を使用することを考えていますが、Visual C++ 2008 では WinCE ビルド用の std::tr1 の下にそれがありません。私は yasper::ptr に満足していますが、それがスレッドセーフかどうかは疑問です。

于 2008-12-21T17:29:41.653 に答える
0

yasper::ptr は Boost Smart Pointers に似ているようですが、もちろん shared_ptr にはより多くの機能があります。

乏しい yasper::ptr のドキュメントでは、ポインター割り当ての例が表示されます。

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

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

2番目のfromが「安全性が低い」のはなぜですか?

于 2008-12-21T05:09:57.107 に答える