ホームページ > バックエンド開発 > C++ > `std::shared_ptr` に配列削除の特殊化がないのはなぜですか?

`std::shared_ptr` に配列削除の特殊化がないのはなぜですか?

Linda Hamilton
リリース: 2024-11-12 21:22:02
オリジナル
496 人が閲覧しました

Why Doesn't `std::shared_ptr` Have a Specialization for Array Deletion?

なぜ std::shared_ptr特殊化されていないままであった

配列のデストラクターで delete[] を適切に呼び出す std::unique_ptr とは対照的に、std::shared_ptr には同等の特殊化がありません。したがって、ユーザーは配列の割り当てを正しく解除するデリーターを手動で提供する必要があります。

見落としの理由

std::shared_ptr が存在しない間、

  • 特殊化は見落としのように見えるかもしれませんが、それはいくつかの要因によるものです:
  • 論争の欠如: 論争を引き起こした std::copy_if とは異なり、std::shared_ptr の不在は重要な議論を引き起こしませんでした。
機会損失:

C 委員会内での議論にもかかわらず、std:: での配列サポートの必要性に対処するための正式な提案は提出されませんでした。 shared_ptr.

最近の開発

std::shared_ptr の配列サポートに対する新たな関心が高まり、ドラフト技術仕様 (TS) の作成につながりました。 。この TS (n4077.html) は、shared_ptr の機能を配列に拡張するメカニズムを提案しています。

現状と将来の展望

ドラフト TS は C の一部として承認されています。 17 では、std::shared_ptr での配列処理の公式サポートが提供されます。この機能強化により、シームレスな配列管理が可能になり、プログラマのメモリ割り当てタスクが簡素化されます。

以上が`std::shared_ptr` に配列削除の特殊化がないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート