2013-05-13 18 views
6

今、C++ 11標準を使用するためにコードの一部を書き直しています。私はすでに私の中にC++ 11の中に提示されたすべてのブーストの機能を置き換えるためにしようとしているboost :: shared_arrayの代わりにstd :: shared_ptr <std::vector>を使用するのは意味がありますか?

std::shared_ptr<std::vector<uint8_t>> array; 

boost::shared_array<uint8_t> array; 

それはでそれを置き換えるために作るん:いくつかの場所で、私は次のコードを見つけましたコード。

少し明確にする必要があります。実際には私は生の配列が必要です(ただし、refcountで自動的に削除することができます)。これらのベクター機能はすべて必要ありません。 boost :: shared_arrayは、追加コストなしで、私が望む問題を解決します。しかし、私は自分のコードができるだけ新しい標準を使うようにしようとしています。

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

+0

さて、あなたは、その場合のブースト依存関係を取り除くことができます。それ以外は、機能的には同等レベルです。 –

答えて

4

コンパイラでのC++ 11サポートの現状とビルドのメンテナンスの怠惰から、私は今のところそのまま残しておきます。 Boostには、古いコンパイラを含むあらゆる場所で動作するという素晴らしい特性があります。変更することでコードはほとんど改善されません。

このコードもまったく同じではありません。

+0

ありがとうございます。 shared_arrayやscoped_arrayを標準に追加するのは難しいですか?ただ疑問に思う。 – maverik

+4

@maverik:C++ 11には 'shared_ptr 'と 'unique_ptr 'という特殊化があります。これは、その目的を完全に満たしていると思います。 – rubenvb

+0

@rubenvb、素晴らしい観察。 – maverik

関連する問題