shared_ptrで配列を使用する
shared_ptrで配列型 (例: int []
)を使用する方法
C++17以降ではT[]
がサポートされているためshared_ptr<int []>
と宣言するだけです。例えば
shared_ptr<int[]> array(new int[10]);
C++17ではstd::make_shared<T>()
はまだ配列型をサポートしていないようですが、C++20からはサポートされているため
shared_ptr<int[]> array = make_shared<int[]>(10); // サイズ10のint型配列
として初期化できるようですが、手元のclang 9.0.1では使用できませんでした。(clang 10からサポート?)
最近のコメント