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

DDD
リリース: 2024-11-20 16:18:16
オリジナル
790 人が閲覧しました

Why Doesn't `std::shared_ptr` Have a Specialization for Arrays in C  ?

std::shared_ptr の特殊化

C では、 std::unique_ptr には配列を処理するためのテンプレートの特殊化があります。 、デストラクターで delete[] を適切に呼び出します。ただし、std::shared_ptr にはそのような特殊化は存在しません。

なぜ不在ですか?

当初、LWG (C委員会)他にも多くの差し迫った問題があった。しかし、正式な提案がなかったことも影響しました。

最近の展開

非公式な議論により、この問題は再び最前線に戻され、プロトタイプが実装されました。ただし、正式な提案はまだ保留中です。 LWG メンバーの中には、std::shared_ptr の配列サポートは価値のある追加であると考えている人もいます。

現在のステータス

C 14 の時点では、組み込みの特殊化はありません。 std::shared_ptr の場合。配列を処理するには、delete[] を呼び出すカスタム デリーターを提供する必要があります。

Update

2014 年に、配列を追加するための技術仕様 (TS) 草案が提案されました。 std::shared_ptr のサポート。この提案は C 17 で実装されました。

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

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