私はOpenCVライブラリの機能の大部分に依存している拡張画像処理プロジェクトを持っていますが、私はいくつかの追加機能も使用しています。OpenCVまたはBoostスマートポインタ
私は問題を引き起こし始めているいくつかの生ポインタを置き換えるためにスマートポインタを使い始めたいと思います。私の質問は、私の主な選択肢は、OpenCV cv::Ptr
またはブーストバリアントの1つであると考えて、使用するスマートポインタのタイプです。
私はブーストポインタのそれぞれとの間の異なるを説明questionsのnumberがあり実現が、私は誰かがcv::Ptr
は彼らとの比較についての説明を提供し、どちらか一方のいずれかの提言を行うことができ望みましたか?
編集 - 私はOpenCV docsから気づきましたPtr
はブーストshared_ptr
と似ていますが、ライブラリ/インクルードファイルが必要なのは本質的な違いですか?
標準のスマートポインタ(C++ 11にアクセスできる場合)を使用することを検討しましたか? – undu
C++ 11を使用している場合は 'std :: shared_ptr'で+1してください。それ以外の場合は、すでにブーストを使用しているのか、ブーストを使用しているのか、またはブーストを使用しているものと相互運用するのかが本当に分かります。 'cv :: Ptr'は十分に機能するので、' shared_ptr'のためだけにboostを含む価値はないと思います。 – yiding
あなたが使用しているのは、あなたが呼び出しているAPIに依存することになります。スマートポインタの3つの味は、必ずしも互換性があるとは限りません。 ブーストライブラリの他の部分を使うときは、 'std :: shared_ptr'の代わりに' boost :: shared_ptr'を使うのが良い理由がよくあります。同じことがOpenCVにも当てはまるだろう。 – marko