適合性
From cppreference.com
適合性には3つの定義があります。
- 厳密適合プログラム - 厳密に定義された言語構成要素のみを使用します。これは、単一の動作を持つ構成要素です。指定されていない、未定義、または実装定義の動作を除外し、実装の最小制限を超えません。
- 適合プログラム - 適合実装で許容されるもの。
- 適合実装 -
- 適合ホスト実装は、すべての厳密適合プログラムを受け入れる必要があります。
- 適合フリースタンディング実装は、ライブラリ句(句7)で指定された機能の使用が、フリースタンディング標準ライブラリヘッダの内容(以下参照)に限定されているすべての厳密適合プログラムを受け入れる必要があります。
- 適合実装は、厳密適合プログラムの動作を変更しない限り、拡張機能(追加のライブラリ関数を含む)を持つことができます。
目次 |
[編集] 説明
標準は、変換単位に関する実装の最小制限を定義していません。ホスト環境にはオペレーティングシステムがありますが、フリースタンディング環境にはありません。ホスト環境で実行されるプログラムは、ライブラリ句(句7)で説明されているすべての機能を使用できます。フリースタンディング環境で実行されるプログラムは、句4で要求されるライブラリ機能のサブセットを使用できます。
[編集] フリースタンディング標準ライブラリヘッダ
すべての完全フリースタンディングヘッダの標準ライブラリ機能は、フリースタンディング実装によって提供される必要があります。
|
一部の標準ライブラリヘッダは、条件付きでフリースタンディングです。
一部の標準ライブラリヘッダは、部分的にフリースタンディングです。
|
(C23以降) |
完全フリースタンディング標準ライブラリヘッダ | |
| <float.h> | 浮動小数点型の制限 |
| <iso646.h> (C95以降) | 代替演算子スペル |
| <limits.h> | 整数型の範囲 |
| <stdalign.h> (C11以降) | alignas および alignof の便利なマクロ |
| <stdarg.h> | 可変引数 |
| <stdbool.h> (C99以降) | ブール型のためのマクロ |
| <stddef.h> | 共通マクロ定義 |
| <stdint.h> (C99以降) | 固定幅整数型 |
| <stdnoreturn.h> (C11以降) | noreturn の便利なマクロ |
| <stdbit.h> (C23以降) | 型のバイトおよびビット表現を操作するためのマクロ |
条件付き完全フリースタンディング標準ライブラリヘッダ | |
| <fenv.h> (C23以降) | 浮動小数点環境 |
| <math.h> (C23以降) | 共通数学関数 |
部分フリースタンディング標準ライブラリヘッダ | |
| <stdlib.h> (C23以降) | 一般ユーティリティ: メモリ管理、 プログラムユーティリティ、 文字列変換、 乱数、 アルゴリズム |
| <string.h> (C23以降) | 文字列処理 |
[編集] 参考文献
- C23標準 (ISO/IEC 9899:2024)
- 4 適合性 (p: 9-10)
- C17標準 (ISO/IEC 9899:2018)
- 4 適合性 (p: 4)
- C11標準 (ISO/IEC 9899:2011)
- 4 適合性 (p: 8-9)
- C99標準 (ISO/IEC 9899:1999)
- 4 適合性 (p: 7-8)
- C89/C90標準 (ISO/IEC 9899:1990)
- 1.7 準拠
[編集] 関連項目
| C++ ドキュメント ( フリースタンディングおよびホスト実装 について)
|