■
11:50
C++で、複数の引数を持つテンプレートクラスをマクロ引数に渡そうとすると、テンプレートクラスの引数の区切りに使用しているコンマが、マクロ引数の区切りとして使用されるのか。ぐわー、困った! とりあえずtypedefしてコンマなしで記述したら回避できたけど、スマートじゃないよなー。
11:52
そもそもC++でマクロを使うこと自体がスマートじゃないし(型安全のためにも、マクロ定数ではなくenumかconst変数、マクロ関数ではなくinline関数を使おうぜー)、まあ仕方ないか。Boost.Preprocessorに含まれているBOOST_PP_COMMAを使えばマクロ引数にコンマを使えるけど、これもスマートじゃないよなあ。
12:25
BOOST_PP_COMMAがBOOST_PP_IFの引数に使えないっぽくて困ったけど、BOOST_PP_COMMA_IFで代替できた。
13:39
「そもそも」とか言うならC++自体がスマートじゃないんだよもう。言語仕様として複雑すぎる。テンプレートを使ったメタプログラミングとか確かに記述量が減ってスマートだけど、複雑すぎて習得の難易度が高いしデバッグするのも面倒。まあでも、C++0xが早く普及すればいいなあとは思う。
13:54
組み込みソフトウェアやゲームの開発環境でもPythonやRubyみたいな軽量言語が主流になるとうれしいんだけど、そういう未来はちょっとなさそうだよなあ。あとはD言語とか流行ってくれるといいんだけど、さすがにそれも期待できないし。10年先に主流になっているプログラム言語って何だろ。