Conformance
From cppreference.net
適合性 の定義には3つの側面があります:
- 厳格適合プログラム (strictly conforming program) - 明確に定義された言語構成、すなわち単一の動作を持つ構成のみを使用するプログラム。未規定動作、未定義動作、または実装定義動作を含まず、あらゆる最小実装制限を超えない。
- 適合プログラム (conforming program) - 適合実装が受け入れることのできるプログラム。
-
適合実装 (conforming implementation)
-
- 適合ホスト実装 (conforming hosted implementation) は、あらゆる厳格適合プログラムを受け入れなければならない。
- 適合フリースタンディング実装 (conforming freestanding implementation) は、ライブラリ条項(第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++ documentation
for
Freestanding and hosted implementation
|
|
C++ documentation
の
Freestanding and hosted implementation
|