std::shared_ptr の特殊化
C 標準ライブラリには、std 用の特殊なテンプレートが含まれています。 :unique_ptr は、デストラクターで delete[] を適切に呼び出します。ただし、std::shared_ptr には同様の特殊化が存在しないため、配列の割り当てを正しく解除するにはカスタム デリーターを使用する必要があります。
特殊化がない理由
初期、std::shared_ptr
最終的には、std::shared_ptr
現在のステータス
特殊なテンプレートがないにもかかわらず、C 17 は部分的な配列サポートを導入しました。 shared_ptr::shared_ptr() メソッドの 3 番目のケースで指定されている、shared_ptr の場合。このアップデートにより、専用の特殊化の利便性はありませんが、shared_ptr を使用した配列の作成と破棄が可能になります。
将来の展望
ドラフト TS (技術仕様) N4077は、shared_ptr での配列サポートへの潜在的な道筋を概説し、この機能は最終的に C 17 に組み込まれました。 of C は、この領域にさらなる機能強化をもたらし、共有ポインタを使用した配列管理の柔軟性と表現力をさらに高める可能性があります。
以上がなぜ `std::shared_ptr` には配列型の特殊化がないのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。