Visual Studio 2010 beta 2 ファーストインプレッション

Visual Studio 2010 beta 2 の ISO出の配布がこちらで始まっています。
というわけで、つるりと落としつつ、どの辺が変わったのかドキュメントをあさっていると・・・

Breaking Changes : MSDN

・・・trigraphデフォルトサポートやめたのね。ふんふん。
・・・C++/CLIコードにIntelliSense効かないのか。
・・・SafeIntがデフォルトで突っ込まれてるのね。

とのほほんと読んでいたら!

The <hash_map> and <hash_set> classes have been modified so that they are now in the std namespace, not stdext. This means that templates specialization of these classes must specify the std namespace instead of stdext.


(;゚ Д゚) …!?
(つд⊂)ゴシゴシ


( Д ) ゚ ゚


あれぇ?! beta 1でstd名前空間に行っててεπι先生がゴルァした結果、beta 2で治るんじゃなかったっけ!?
折よく、インストール完了したので、早速眺めに行ってみました。


//hash_map
namespace stdext {
/*中略*/
template < class _Kty,
                  class _Ty, 
                  class _Tr = hash_compare<_Kty, less< _Kty > >,
                  class _Alloc = allocator<pair<const _Kty, _Ty > > >
                  class hash_map 
                  : public _Hash< _Hmap_traits<_Kty, _Ty, _Tr, _Alloc, false > >
{/*略*/}


おぉ。ちゃんとstdextにあるではありませんか。
まぁ、念には念を入れて・・・


#include <hash_map>
int _tmain(int argc, _TCHAR* argv[])
{
  std::hash_map< int, int > hashmap;
  return 0;
}


として、ビルドっ!

( Д ) ゚ ゚ とととと 通ったーーーー!


hash_map の中身をさらに見物・・・すると、こんな宣言ハケーン。

_STD_BEGIN
using stdext::hash_map;
_STD_END


( Д ) ゚ ゚ using ktkrーーーー!


その他。
・nullptrがこっそり入ってました。ちゃんと使えます。
・beta1 だと、emacsキーバインドが全滅してましたが、ちゃんとできるようになってました。すごいうれしい。
・std::swapから余計な比較が(漸く)消えました。(b1からかも)

template < class _Ty > inline
void swap(_Ty& _Left, _Ty& _Right)
{ // exchange values stored at _Left and _Right
  _Ty _Tmp = _Move(_Left);
  _Left = _Move(_Right);
  _Right = _Move(_Tmp);
}

4 コメント:

επιστημη さんのコメント...

> they are now in the std namespace

こ、このばかちんがあっ!

zak さんのコメント...

> they are now in the std namespace
こうMSDNに書いちゃうと、std 名前空間にあるのが正しいことに・・・

/(^o^)\ソンナバカナ


さらに触ってみた感じ、IntelliSenseの強化っぷりがものすごいです。

# Boost.PPとかマクロの海に出るときに、コンパス/地図として役立ってくれそうです。

Unknown さんのコメント...

ISO配布はじまってたんですねー、というわけでDL開始。

…しましたが、VisualStudioで遊ぶ為のWindows7を仮想マシンに入れる作業もまだ終わっていない。
遊ぶのは当分先かなー@w@

はやくもPPL+Lambdaが懐かしい^ー^;

そうそう、インテリセンスといえば、boostのヘッダーファイルなど扱って、データベースをゴリゴリと読み込んでいると、Beta1ではぽっくり落ちる事がままありました。インテリセンスの強化と一緒にそこらへんの改善も期待です。

zak さんのコメント...

>インテリセンス
VS2010から、ncbファイルによる型情報管理をやめて、(マイクロソフト謹製の?)SQLDBに置き換えたそうです。

この変更が元なのか、DBに突っ込む型情報を派手に増やした(条件分岐マクロで分割した偽の部分のコードまで読む)せいか、はよくわかりません。が、boostのヘッダを突っ込むと気絶することはままありましたね・・・ >beta1

# boostの中身には死ぬるほど条件分岐マクロがありますからね・・・

とはいえ、今のところうちの32bit環境でbeta1で必殺だったBoost.MPLやBoost.PPを突っ込んでも生きているので、ずいぶん改善されているようですよ。>IntelliSense

・・・ただ、Boostに散りばめられている環境依存コードまで捕まえてくるのがちょっとうっとうしい感じです。

# 引越し準備中なうにつき、そんなにどんどこ構ってないんですけどね。