WinCE の STL は Microsoft の別のチームによって維持されているため、WinMobile プロジェクトの std::tr1::shared_ptr を取得できません :( aarrgh...
別のスレッドセーフな参照カウント スマート ポインターを使用した人はいますか? 私は実際に良いと思われるyasperを使用しています。
どうもありがとうございました。
WinCE の STL は Microsoft の別のチームによって維持されているため、WinMobile プロジェクトの std::tr1::shared_ptr を取得できません :( 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 用のより完全なポートを備えています。
はい、shared_ptr を使用することを考えていますが、Visual C++ 2008 では WinCE ビルド用の std::tr1 の下にそれがありません。私は yasper::ptr に満足していますが、それがスレッドセーフかどうかは疑問です。
yasper::ptr は Boost Smart Pointers に似ているようですが、もちろん shared_ptr にはより多くの機能があります。
乏しい yasper::ptr のドキュメントでは、ポインター割り当ての例が表示されます。
//preferred
ptr<SomeClass> p1(new SomeClass);
//less safe
ptr<SomeClass> p2 = new SomeClass;
2番目のfromが「安全性が低い」のはなぜですか?