std::shared_ptr
C 標準ライブラリには、配列に対する std::unique_ptr の特殊化が含まれており、デストラクターから delete[] を正しく呼び出します。ただし、std::shared_ptr には同様の特殊化が特にありません。この動作では、ユーザーは明示的に delete[] を呼び出すデリーターを手動で提供する必要があります。
この省略は見落としですか?それとも意図的なものですか?
欠席の理由
C ライブラリ ワーキング グループ (LWG) は、std::shared_ptr
具体的には、std::shared_ptr
最近の開発
非公式には、このトピックは再び業界内で注目を集めています。 LWG に準拠し、プロトタイプが開発されました。この機能が価値あるツールになる可能性はありますが、標準に組み込まれるかどうかは依然として不確実です。
現在のステータス
C 11 の時点では、std::共有_ptr
アップデート (2017)
C 17 標準にはサポートが含まれていますstd::shared_ptr の配列の場合 (ケース 3 shared_ptr::shared_ptr()).
以上がC には std::shared_ptr の特殊化がないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。