私は、いくつかの C スタイルの配列 (または少なくとも最初の要素へのポインター) を引数として必要とする古いコードとやり取りする必要があるクラスを作成しました。
これらの配列は私のクラスのメンバーであり、特に大きい (50kb) ため、クラスのオブジェクトがスタック上で大きくならないようにヒープに配置したいと考えています。私はリソース管理オブジェクトを使用することを強く信じているので、ヒープ上でこれらの配列を自分で管理したくありません。
これにはunique_ptrを使用すると特にうまく機能することがわかりました。例えば:
std::unique_ptr<SOMETYPE[]> someArrayName
そして使用:
someArrayName(new SOMETYPE[someLargeSize])
私のコンストラクタの初期化リストに。これにより、これらを引数として必要とする関数のメソッドを使用して通常の C 配列として使用.get()
でき、自分でメモリを管理する必要がなくなります。しかし、私の同僚 (実際にリリース用にコードをコンパイルする人) がまだ VS2008 を使用していることに気付きましunique_ptr
た。まず、これにunique_ptrを使用している私の現在のソリューションは良いものですか? もしそうなら、ブーストのようなもので必要なすべての動作を維持するために、これに代わるものはありますか?