Boost

4月からC++に触り初めて、いくつかモジュールを作成し、今はもう後輩に教えたりしてます。
普及していて皆に使えるのに僕だけ使えないなんてそんな訳ないよねよく考えれば。
なんでもそうですよね。出来るか出来ないかじゃなくて、やるかやらないかだな。
脱線はそのぐらいにしておこう。


C++を使っていて文字列中に固定幅長の変数を埋め込む場合、iostream等を使ってsetfilなどを使うとめんどくさいので、

printf("ID %3d job start.",$jobid);

のようにcのprintf関数を使って書くことがもの凄く多いのですが、
printf関数は記述の自由度が高い分だけコンパイラの判断が難しいようで、
前半の部分で指定した型と後述する変数の型が異なる場合、コンパイルエラーにならず、
実際に動作をさせるとcore吐いて死んだりするので、なんだかなぁと思うことがあります。

なんでC++のstreamはその辺が不便なままなんだろう、と思っていたのですが、Boostというプロジェクトがあるんですね
Let's Boostを見ると使い方も書いてあっていいですね。
前述の問題もboost::lexical_castで解決!いいねぇ。

『いずれ来る次のC++標準化(C++200X)の際に、 新標準ライブラリとして提供されること』
を目標に開発に取り組んでいるとのことで、非常に期待していますが、
現状の開発環境にこれを導入するのは難しいだろうなぁ。あと数年はprintf系の関数にご厄介になりそうです。