Monthly Archives
Home > 200511
2005-11
- スポンサーサイト
- ...
- 07-25 |
- 2進定数の書き方
- CにもC++にも、2進数を直接記述する方法がありません。しかし、定数に2進数を使いたくなることも少なくありません。コンパイラによっては、0b〜とか、0y〜とかの記法を使って2進数を使えるようにする拡張がサポートされている場合もありますが、このような拡張機能を使うと、CPUが変更になった場合など、大変な目に遭うことは必至です。そこで、C++のテンプレートとマクロを組み合わせて、2進数を記述する方法を紹介したいと思い......
- 11-29 | 実装技術 | Comment : 0 | Trackback : 0
- タイプセーフなデータキュー
- μITRONのデータキューは、送受信可能なデータ型がVP_INT型ですので、決して型安全であるとはいえません。そこで、少し工夫することで、(あくまでも静的なものですが)型安全なデータキューを作ることができます。template <class T>class typesafe_dataqueue{ ID id_;public: explicit typesafe_dataqueue(ID dtqid) : id_(dtqid) {} ER send(std::auto_ptr<T> data) ......
- 11-07 | 実装技術 | Comment : 0 | Trackback : 0
- 累乗定数
- BASICなどとは異なり、C/C++には累乗(べき乗)のための演算子がないということもあり、定数式の中で累乗計算を行うことができません。しかし、ときには累乗定数が必要なこともあります。そんなときには、次のようなテクニックが使えます。template <long X, int Y>struct power{ static const long value = X * power<X, Y-1>::value;};template <long X>struct power<X, 0>{ st......
- 11-05 | 実装技術 | Comment : 2 | Trackback : 1
- 固定小数点クラス
- C++には、Cと同様、float、double、およびlong doubleという浮動小数点型がありますが、FPUを持たないターゲットの場合、これらの型を使うと非常に大きな計算コストがかかります。また、小数部を十進数に直したときに誤差が出たり、比較する際にも機械誤差を考慮しなければならないなど、いろいろ不便なこともあります。そんなときには固定小数点クラスを定義してしまうのが一つの解決策です。class fixed{public: fi......
- 11-03 | 実装技術 | Comment : 0 | Trackback : 0
<< 10 | 2005-11 | 12 >>
C++と組み込み環境 | Page Top▲
- Navigation