C++Builder 2010情報解禁
ちょっと出遅れたけど、C++Builderの新バージョン、"C++Builder 2010"についての情報が解禁になったので、個人的な感想とかを晒してみる。
詳しい情報は、本家とかDelphi系ブロガーの皆様に任せるとして(ぉぃ)、いち、C++Builderユーザー視点から。
現時点で、まだRTMが済んでいないのでもしかしたら変更があるかも。
全般的な感想としては、ぶっちゃけた話マイナーチェンジ。だけど、IDEについては全俺が泣いた新機能てんこ盛り。
エディタの検索機能の強化
少し前のデベロッパーキャンプで指摘があった、Shift+F3で逆方向検索が出来るようになりました!!
FirefoxっぽいUIなので今までと比べものにならないくらい使い勝手がアップ。もちろん、正規表現とかマッチ部分のハイライトとかも。
C++クラスエクスプローラーの「復活」
変数とかクラスとかの定義とか、参照情報とかが検索出来るようになったので、いちいち、grepとかを起動して検索する必要が無くなった。
やっぱり、この機能の復活は嬉しい。
IDEインサイト
機能名から、メニューとかコマンドを検索するというちょっと面白い機能。
コンパイルオプションにジャンプしたりとか、コンポーネント名からコンポーネントを検索してそのまま貼ったりと、いろいろ出来る。
IMEを起動しなければならない場合があったりするけど、これは結構使う。てか、FT中に結構使っていたり。
データビジュアライザー
デバッガでstd::stringとかstd::wstringは「文字列」として表示される。これ、本当に欲しかった・・・。
この機能はプラグインなので、OpenToolAPIで拡張可能。ほかにもTDateTimeとかTStrings*1が実装されている。
あとは、[ファイル|開き直す]で表示される項目の管理とか、コードフォーマッターでソースコードが整形出来たりとか、昔のIDEのように、コンポーネントパレットをツールバーに表示できたりとか。
この辺も欲しかった機能なので非常に助かる。
C/C++コンパイラとRTLについてもやっぱり、マイナーチェンジ。Boostのバージョンは、1.39.0に。
バグフィックスが主だけど、細かい部分で気が利いた修正が追加。個人的に気に入ったのは、以下の3点。
メモリマネージャーの変更
メモリマネージャーがFASTMMになったおかげでパフォーマンスアップ。
具体的な数字を挙げるのはまずそうな気がするので、こんな感じの単純なコードをCB2009と2010に喰わせたところ、明らかに動作速度がアップ。
int _tmain(int argc, _TCHAR* argv[]) { const int count = 50000; char* buf[count]; double rr = 0.0; const int rc = 100; for (int t = 0; t < rc; ++t) { DWORD s = GetTickCount(); for (int i = 0; i < count; ++i) { char* pp = new char[1024]; memset(pp, 0, 1024); buf[i] = pp; } for (int i = 0; i < count; ++i) { delete[]buf[i]; } DWORD e = GetTickCount(); double d = (e - s) / 1000.0; printf("sec = %.8f\n", d); // rr += d; } printf("avr = %.8f\n", rr / rc); return 0; }この辺は、10-90ルールの"10"当たる部分で、STLやBoostなどのパフォーマンスにも影響。これは意外と効いてくるかも。
「セキュア」な標準入出力
昔からバッファオーバーフローの原因となっていた、scanfとかstrcpyとかの「セキュア」な実装が追加。
VisualC++ 2005から導入された、scanf_s、strcpy_s、fopen_sがC++Builderでも実装されたので、こいつを使えば古いCのソースもセキュアになる。もちろん、ソースコードの修正は必要。
#pragma onceの追加
ヘッダファイルのインクルードガードは#ifdef〜#endifでくくっていたのを、#pragma onceでインクルードガードが可能。
ダウンロード版正式リリースは8月25日予定。
あれ?そういえば、[NDAにつき検閲済]はどうなったんだ? 確か、入るはず*2予定で個人的には一番欲しかった機能だけd Zap!! Zap!! Zap!!!