2

boost::shared_ptr( ) に相当するものは存在QSharedPointerしますが、 に似ているものを見つけることができませんでしたboost::shared_array

もちろん、私は似たようなものを使うことができます

QSharedPointer<const std::vector<T> > shared_vector_ptr(new std::vector<T>(
       reinterpret_cast<T*>(pBuffer),
       reinterpret_cast<T*>(pBuffer+length)
));    

の代わりに提供して使用するネイティブQt ソリューションが存在するかどうかを知りたいです。ターゲットマシンにブーストをインストールできず、プロジェクトがソースごとに配布されるため、このプロジェクトでブーストを使用するのは気が進まない.T& operator[](size_t)delete[]delete

注: を使用してデリータを指定できることはわかっていますがQSharedPointer::QSharedPointer ( T * ptr, Deleter deleter )、コンパイラはデリータを指定することを強制しないため、このアプローチは嫌いです。これにより、new []割り当てられたブロックが によって削除されdeleteます。

4

1 に答える 1

1

最も近いのは だと思いますQScopedArrayPointerが、もちろんスコープ付きです。

サブクラス化して、呼び出すQSharedPointer独自の非表示を静かに追加する(および を追加する) のはほとんど手間がかかりません。そうすれば、ユーザーは何も考える必要がなく、まだ Qt ネイティブ コードを使用しています。Deleterdelete[]operator[]

于 2012-07-04T09:03:29.147 に答える