次の方法で共有


1.4 準拠

第 1 章、2 章、3 章、4 章、および付録 C に記述されているこの仕様の要素すべてのセマンティクスを認識し保持している場合、その OpenMP C/C++ API の実装は OpenMP 準拠になります。付録 A、B、D、E、および F は参考目的のもので、仕様の一部ではありません。この API のサブセットのみ含んでいる実装は OpenMP 準拠ではありません。

OpenMP C/C++ API は、実装によってサポートされているベース言語の拡張です。ベース言語が、このドキュメントに記載されている言語コンストラクトや拡張をサポートしていない場合、OpenMP 実装でこれをサポートする必要はありません。

すべての標準の C および C++ のライブラリ関数や組み込み関数 (つまり、コンパイラが固有の情報を持っている関数) はスレッド セーフである必要があります。スレッド セーフな関数を同じ並行領域内の異なるスレッドで非同期に実行した場合でも、未定義の動作は発生しません。ただし、乱数生成関数の場合のように、シリアル領域で実行した場合の動作とは異なる場合があります。

OpenMP C/C++ API では、特定の動作については実装で定義されています。これらの動作を定義および文書化するには、OpenMP 準拠の実装が必要です。実装で定義されている動作一覧については 97 ページの付録 E を参照してください。