PCP: C++ Preprocessorに関する諸々の注意事項
処理系に対する過程
PCPが対象とするCおよびC++の処理系に対し、以下の過程を行うものとする。
- char型のサイズは8ビットである。
- 汎整数型のビット幅は8の倍数とし、詰め物ビットはない。
- 符号付き整数型の負の内部表現は2の補数を使う。
PHPに対する制約
PCPが使用するPHPには以下の制約がある。
- PHPのバージョンは7.0.0以上でなければならない。
- PHPは32ビット版でもかまわないが、PHPのinteger型の表現範囲が-2,147,483,648~+2,147,483,647になる。
- 64ビット版のPHPを使った場合でも符号無し64ビット整数の表現範囲をinteger型で扱うことはできない。
- float型を使った場合でも通常64ビットの精度はない。
- integer型の表現範囲を超える値を扱うには、GMPを使用すべきである。
- PHP 7以上では、ASP形式のタグ(<% ~ %>)は使用できない(混乱を避ける意味でも、CやC++のコードでは二文字表記の<%および%>を使用すべきではない)。
動作確認済みの環境
現時点で動作確認を行った環境は下記に挙げるものに限られる。
- Msys2 + GCC 7.2 (64ビット) + PHP 7.2.0
なお、動作確認済みの環境においても、不具合がないことを保証するものではない。