標準正しくデストラクタからdelete[]
を呼び出しstd::unique_ptr
のテンプレートの特殊化を提供します:std::shared_ptr
でstd :: shared_ptr <T[]>の専門はなぜですか?
void func()
{
std::unique_ptr<int[]> arr(new int[10]);
.......
}
この専門分野が利用できないので、正しくdelete[]
を呼び出しデリータを提供するために、 に必要です。
void func()
{
// Usage
shared_ptr array (new double [256], [](double* arr) { delete [] arr; });
..............
}
これは単に見落としですか? (同じ方法で、std::copy_if
がある)、または理由がありますか?
N.Bを参照してください。 Boostの作業に基づいてC++ 17にこれを追加する新しい提案があります(http://open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3640.html –
)。サブオブジェクトを参照する機能など、配列を操作するときは 'shared_ptr'機構の' –