ホームページ >バックエンド開発 >C++ >C コンテナーが不完全な型を保持できないのはなぜですか?

C コンテナーが不完全な型を保持できないのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-04 07:26:10265ブラウズ

Why Can't C   Containers Hold Incomplete Types?

C コンテナーで不完全型が禁止されている理由

質問:

なぜ C コンテナーでは不完全型が禁止されているのですか標準では不完全な型のコンテナを許可しません。

答え:

この点に関する C 標準化委員会の決定は、歴史的な理由から生じました。

初期テストでは、コンテナの単純な例でも、不完全な型を使用すると、すべての STL 実装で一貫して機能しませんでした。この明確さの欠如により、委員会は STL コンテナが不完全な型を扱う際の未定義の動作を宣言し、この禁止事項を残りの標準ライブラリにも拡張しました。

この決定は、不完全な型を扱う既存のライブラリ実装の無効化を避けるために行われました。不完全な型を遡及的にサポートしません。

当初の禁止にもかかわらず、委員会のライブラリ作業グループの議長であるマット・オースターンは、これを緩和する可能性を認めました。

現在の標準では禁止事項がまだ残っていますが、boost::container は不完全型を許可するコンテナの実現可能性を示し、それが望まれる状況にソリューションを提供します。

以上がC コンテナーが不完全な型を保持できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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