PDC2008 Microsoft Visual C++: 10 Is the New 6

PDC2008のセッションMicrosoft Visual C++: 10 Is the New 6を見た。

以下超意訳。

VC10は新しいVC6

  • VC6は出た当時革命的だった。(まぁ今でも使ってるし)
  • VC10はVC6と同じように革命的に良くなる

VC10 is

  • ネイティブコードに焦点を当てた
  • スケーラブル。数100万行のコードをうまく扱えますよと。
  • 拡張性(今の拡張性からどう良くなったのかよくわかりません)

MFCのアップデート

  • Office10みたいなリボンが簡単に作れるようになる。CMDIFrame"Ex"クラスを使えます。(興味なし)

MSBuild

  • ビルドシステムがMSBuildベースになった。
  • マルチターゲット。ターゲットの設定でVC9を選んだりできる。(gcc等の違うコンパイラが選べる(ように拡張できる)ってことか?だとしたらかなり良いかも。でもインテリセンスとかはどうなるのか?)

並列(Concurrency)

IDEアーキテクチャ刷新

  • インテリセンスが高速O(1)になる。コンパイラと一緒に動いて、データベースがSQLになる。
  • エディタはWPFベース。(拡張しやすいって事?)

C++0x

  • 対応済み:lambda,右辺値参照,auto変数,static_assert,tr1
  • 今対応中?:Concepts,Variadic Templates, nullptr,Thread,コンテナの初期化構文

C++0xについては Faith and Brave - C++で遊ぼうさんが詳しいですね。

ここで突如lambdaの説明。

//auto変数fに,intを引数にとりboolを返す関数を代入するの例。
//[]で変数を参照でキャプチャして、lambdaの中から使える。
int sum = 0;
auto f = [&sum](int x) -> bool {
	return x%2 == 0? ++sum : false;
}

クロージャはこうやって実現すると。

あとは30分以上もQA。聞き取れない・・。

感想など

  • C++0xの紹介はほとんどなし。知ってること前提ぽい
  • インテリセンスはコンパイラと同時に動くし、SQLなので大分進歩したと言っているが、デモではちゃんと動いてなかった。
  • 個人的にはマルチターゲットが気になる。mingやcygwingccがVC10から使えるようになるかもってことか?あとで調べてみよう。