Embedded C++

組み込みのプログラミングもすることになりそう。その関係でEmbedded C++というのを聞いた。C++から仕様を削って作ったものらしい。新しい部分は皆無なので言語マニア的には全く面白くないのだが、触れる可能性があるのでちょっと見てみた。
http://www.caravan.net/ec2plus/
日本語ページによると

  • オブジェクト指向的に有用な部分は残しつつ、複雑な機能は削除
  • 組み込みシステム設計の要求を満たさない機能は削除
    • 過度のメモリ消費を要求するもの 
    • 応答の予測が難しいもの 
    • コードのROM化を妨げるもの 
  • ANSI/ISO C++言語規格で、まだ仕様が確定していない機能は削除

という方針らしい。具体的に無くなったものは

  • mutable
  • 例外
  • RTTI
  • namespace
  • template
  • 多重継承
  • 仮想継承

というところ。
何と言えば良いのだろう。例外とRTTIは確かにコストが大きいし、無くしたくなるのも判らないでもない。でも、残りはコンパイル時にのみ使われるものだよね。バイナリのサイズもRAMの消費量も大きくする要因にはならないのだから、無くす理由がないだろう。それとも組み込み環境でコンパイルすることでも想定しているのだろうか。
そう考えると「複雑な機能は削除」というのが気になる。もしかして「一般的なプログラマが理解していないから削除」ということか。うわ、最悪だ。
サイトが2002年からアップデートされていないのも考えると既に死に体だという気もする。これはちょっと関わりたくないなぁ。

      • -

コメントへの返事。
templateのないC++なんて私も嫌です。単純にSTL&boostが使えないという時点でくらくらするし、コンパイル時計算という可能性を全部潰すなんてのは正気とは思えません。むしろtccで実行時バイナリ生成の出来るCの方が面白いのではないかと。