2012-04-17 15 views
1

VS2010のstd::shared_ptrboost::shared_ptrの違いは何ですか?VS2010のstd :: shared_ptrとboost :: shared_ptrの相違点

実装はほとんど同じですか?あるいは、大きな違いがありますか?

最も効率的/最適化されたものは何ですか?

ありがとうございました。

+0

なぜソースコードを見ないのですか? – Nick

+3

違いがあります。彼らがあなたのために重要であるかどうかは、どのようにしてわかりますか? –

+1

@ニック:一般的に、BoostとSTL C++のソースコードは読みにくくありません(時には[読み取り専用/書き込み専用コード](http://blogs.msdn.com/b/larryosterman/archive/2011)。 /09/27/read-only-and-write-only-computer-languages.aspx))。私は彼らをブラックボックスのように思っています。 –

答えて

1

VS2010のshared_ptrは、C++ 11標準に準拠した(または、少なくとも、準拠しようとしている)実装です。一方、C++標準ライブラリではなく、以前の方法で開発されました。私は両方とも、プロダクション用には十分に効率的だと信じていますが、ブーストを使用すると、あなたはブーストを使用します;)。いくつかのケースでは非常に容認できないものです。

+0

Boostを使うのは問題ではありません(VS2010のstdには存在しない他のBoostライブラリがあります::)。 AFAIKでは、商用製品でBoostを使用することができます(私が間違っている場合は修正してください)。 –

+1

FWIW、VS2008 tr1 :: shared_ptr実装はバグだった(VS2010では、この特定のバグが修正されたようだが): http://connect.microsoft.com/VisualStudio/feedback/details/488804/tr1-shared-ptr -reset-causes-crash –

+1

商用製品でも使うことができますが、一部の企業(Googleでも必要と思われる)は、ブーストや他の図書館に対する強力なコードポリシーを持っています。 –

関連する問題