が
std::unique_ptr<T[]>
からstd::shared_ptr<T>
を構築するために有効である:shared_ptr
がデリータを取得するためstd::unique_ptr<int[]> arr(new int[1]); std::shared_ptr<int> ptr(std::move(arr));
(
std::default_delete<T[]>
オブジェクト)をunique_ptr
から削除すると、配列は が正しく割り当て解除されます。これはC++では許可されていません17。代わりに、配列形式
std::shared_ptr<T[]>
を使用する必要があります。
なぜC++では許可されていないのですか17?変化したこと?
いくつかの測定値あなたがしたい場合:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0414r2.html – Holt