typedef unsingned int uint32;
typedef signed int int32;
typedef符号なしcharバイト。
まあなど。 提案を行います。各タイプのクラスを作成して、最も単純なタイプをオーバーライドしませんか? そのようなオブジェクトを格納するときのメモリ消費は、理論的には増加しないはずです(本質的に、仮想関数を使用しません)。 たとえば、次のようなDoubleクラスを作成します。
クラスDouble { 公開: Double(const Double&value); ダブル演算子+(const Double&right)const; ダブル演算子-(const Double&right)const; Bool IsPositiveInfinity(); Bool IsNegativeInfinity(); プライベート: double _value; }
または、たとえばchar型の場合:
クラス文字 { 公開: Char(char値); Bool IsDecimalDigit()const; Bool IsLetter()const; Bool IsWhiteSpace()const; ブール演算子==(const char&other); Bool operator!=(Const Char&other); プライベート: char _value; };
したがって、最も単純な型をオブジェクトとして操作し、コードの読みやすさを高め、プログラムで何が起こるかをより細かく制御できます(たとえば、double型で実行された乗算の数をカウントするには、オーバーロードされた演算子にカウンターを配置します)。
パフォーマンス/メモリ消費量が過剰になることはありません。
これまでのところ、このアプローチの長所/短所を共有することはできませんが、徐々にC ++ライブラリに導入しています。