Standardではない邪道なC++ライブラリの開発日誌
Dradnats C++ Libraryは標準や準標準のような立場を目指すものではないため、厳密な移植性に対する配慮は行わず、より現実的なスタンスで開発することにします。そのためには、あらかじめ対象とする処理系に対する仮定を行う必要があります。
対象とする処理系ですが、初期の段階では開発効率を優先してVisual C++ 2005を使用することにします。Visual C++ 2008でもよいのですが、現時点ではBoost C++ Librariesが未対応ですので、あえてひとつ古いバージョンを選択することにしました。
ただ、それはあくまでも開発環境の話であって、移植可能な処理系としては最低限GCCは視野に入れる予定です。まずは作業効率の関係上、CygwinとMinGWに対応し、その後Linux等にも対応できればと考えています。
OSやフレームワーク等に依存するものを除けば、可能な限り規格厳密合致プログラムを目指したいのですが、さすがに次に挙げる内容については制約を課したいと考えています。
ただ、それはあくまでも開発環境の話であって、移植可能な処理系としては最低限GCCは視野に入れる予定です。まずは作業効率の関係上、CygwinとMinGWに対応し、その後Linux等にも対応できればと考えています。
OSやフレームワーク等に依存するものを除けば、可能な限り規格厳密合致プログラムを目指したいのですが、さすがに次に挙げる内容については制約を課したいと考えています。
- 負の整数値の内部表現には2の補数を使用すること
- 整数型の符号ビットと値ビットの合計がsizeof(型)*CHAR_BITであること
- バイトオーダーはビッグエンディアンかリトルエンディアンのいずれかであること
- char型は8ビットであること
- 8ビット、16ビット、32ビット、64ビットの整数型が使えること
- long long型が使えること
- 符号が異なる整数値の除算および剰余算の結果はdiv関数と同様に振舞うこと
- std::type_info::nameが返す文字列は型ごとにユニークであること
- 暦時間、CPU使用時間を取得できること