ホームページ >バックエンド開発 >C++ >C 標準ライブラリに `std::shared_ptr` がないのはなぜですか?

C 標準ライブラリに `std::shared_ptr` がないのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-10 04:07:53522ブラウズ

Why isn't there a `std::shared_ptr` in the C   standard library?

std::shared_ptr の不在についての詳細

C 標準ライブラリには、配列用の std::unique_ptr の特殊バージョン、 std::unique_ptr、デストラクターで delete[] を正しく呼び出します。ただし、std::shared_ptr にはそのような特殊化が欠けているため、質問で紹介されているようなカスタム デリーターを使用する必要があります。

特殊化がないことの根拠

std::shared_ptr が存在しない。要素の組み合わせから生じます:

  • LWG ディスカッション: ライブラリ ワーキング グループ (LWG) はこのアイデアを検討しましたが、shared_ptr< に提案された追加機能をめぐる論争のため、最終的に却下されました。 T[]>.
  • 形式的でない提案: 非公式の議論にもかかわらず、std::shared_ptr の作成に関する正式な提案は LWG に提出されていません。

現状と将来展望

歴史的な躊躇にもかかわらず、最近の議論でLWG間の関心が再燃しているメンバー。プロトタイプは実装されましたが、正式な提案は未解決のままです。 std::shared_ptr の実現可能性と最終的な採用

今後の開発

open-std.org のドラフト TS (技術仕様) では、std::shared_ptr の配列サポートが提案されています。この TS が採用された場合、std::shared_ptr が導入されます。

C 17 の更新

その後、ドラフト TS は C 17 に組み込まれ、std::shared_ptr。詳細については、shared_ptr::shared_ptr() のケース 3 を参照してください。

以上がC 標準ライブラリに `std::shared_ptr` がないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。