ホームページ >バックエンド開発 >C++ >C 標準ライブラリのヘッダーは、他のヘッダーのインクルードをどのように保証したり、明示的にインクルードせずに特定の機能を提供したりするのでしょうか?

C 標準ライブラリのヘッダーは、他のヘッダーのインクルードをどのように保証したり、明示的にインクルードせずに特定の機能を提供したりするのでしょうか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-29 09:05:30297ブラウズ

How do C   standard library headers guarantee the inclusion of other headers or provide specific functions without explicit inclusion?

包含が保証された C 標準ライブラリのヘッダー

ほとんどの場合、C 標準ライブラリのヘッダーには未指定の包含関係があります。ただし、特定のヘッダーが他のヘッダーの包含を保証する場合、またはそれらを含めずに特定の機能を提供する場合は例外があります。

特定のヘッダーが含まれることが保証されているヘッダー:

  • イニシャライザ リスト () は次のものに含まれます:

    • Utility ()
    • String ()
    • 配列 ()
    • デキュー ()
    • フォワード リスト ()
    • リスト (< list>)
    • ベクトル ()
    • マップ ()
    • セット ()
    • 順序なしマップ()
    • 順序なしセット ()
    • キュー ()
    • スタック (<スタック>)
    • アルゴリズム ()
    • ランダム ()
    • Valarray ()
    • 正規表現 ()
  • 入力/出力ストリーム () には以下が含まれます:

    • 入力/出力状態 ()
    • ストリーム バッファ ()
    • 入力ストリーム ()
    • 出力ストリーム ()
  • 入出力状態 () には以下が含まれます:

    • 前方宣言 ()
  • ビットセット () には以下が含まれます:

    • 文字列 ()
    • 前方宣言 (

関数の可用性を保証するヘッダー:

関数テンプレート std::begin、std::end、およびそれらのバリアント(cbegin、crend など) は主に Iterator ヘッダー () で定義されます。ただし、次のヘッダーのいずれかを含める場合にも使用できます:

  • 配列 ()
  • デキュー ()
  • フォワード リスト ()
  • リスト (< list>)
  • マップ ()
  • 正規表現 ()
  • セット ()
  • 文字列 ( )
  • 順序なしマップ ()
  • 順序なしセット ()
  • ベクトル ()

std::string_view () を含めると、関数 *begin、*end、および汎用 std::swap オーバーロードが使用可能になります。ただし、サイズ、空、データはそうではありません。

以上がC 標準ライブラリのヘッダーは、他のヘッダーのインクルードをどのように保証したり、明示的にインクルードせずに特定の機能を提供したりするのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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