| 日本−日本語 |
|
|
|
![]() |
HP aC++/HP ANSI C バージョン A.06.05 リリースノート > 第1章 HP aC++/HP ANSI C リリースノート既知の問題と回避策 |
|
サポート契約を結んだユーザーは、製品番号を使って HP aC++ または HP C 用の SSB および SRB レポートを見つけることができます。検索する製品番号は B3910BA です。 ご使用の HP aC++ または HP C の製品番号とバージョンを確かめるには、次のような HP-UX コマンドを実行します。 what /opt/aCC/bin/aCC what /opt/aCC/lbin/ecom what /opt/ansic/bin/cc what /opt/ansic/lbin/ecom 次に、既知の問題とその回避策を示します。 コンパイラの最適化レベル 4 で作成されたオブジェクト (中間オブジェクトファイル) は、一時ファイルとしてのみ使えます。これらのオブジェクトファイルには、ユーザーコードの中間表現が、高度な最適化のために設計されたフォーマットで入っています。当社は、コンパイラの新版のリリースやパッチに伴ってこれらのファイルのフォーマットを予告なしに変更する権利を、留保しています。中間ファイルの使用は、そのファイルを作成したコンパイラだけに限らなければなりません。同じ理由で、異なるバージョンのコンパイラで使われる可能性のあるアーカイブライブラリには、中間オブジェクトファイルを入れないでください。 互換性のない中間ファイルを検出した場合、コンパイラはメッセージを出力して終了します。 ANSI C++ 標準は度々改訂されていますが、改訂の都度、C++ 標準ライブラリが変更されている訳ではありません。関数ヘッダーファイル functional のtimes 関数オブジェクトなどがその例です。ANSI C++ 標準では、times はmultiplies に名前が変更されています。 multiplies を使用してコードを記述する場合は、ISO/ANSI C++ 標準と互換性を持つように、aCC コマンド行で条件付きコンパイルフラグを使用してください。 たとえば、次のプログラムであれば、次のようなコマンド行でコンパイルしてください。
現在の A.05.* および A.06.* コンパイラは自動的に次のようなフラグを設定します。
コードに/usr/include/macros.h が含まれる場合は、 macros.h で定義されている min マクロおよび max マクロが、C++ 標準ライブラリのnumeric_limits クラスで定義されているmin 関数およびmax 関数と競合することに注意してください。たとえば、次のコードはコンパイラ Error 134 を生成します。
macros.h ヘッダーを使わなければならない場合は、競合するマクロを定義しないようにしてください。
このリリースに関する既知の制限事項を以下に示します。これらの制限事項のいくつかは、HP aC++ の今後のリリースで取り除かれる予定です。制限事項の中には特定のプラットフォームでのみ生じるものがある点に注意してください。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||