VC++10 Beta1さわってみた

まだ30分くらいしかさわってないですけど、わかったことをつらつらと書いておきます。


・インテリセンスはえーーーーーー


・TR1ライブラリはstd::tr1名前空間からstd名前空間に移動(std::tr1でも使える)


・<random>のdistributionクラスはC++0xの最新のクラス名に変更
 (たとえば、uniform_int → uniform_int_distribution)


・_HAS_CPP0X、_HAS_RVALUE_REFERENCESって名前のdefineあった


・<system_error>のエラーコードが、C++0xでは以下のように定義されるが

namespace std {
  enum class errc {
    address_family_not_supported,
    address_in_use,
    ...
  };
}

VC++10では以下のように定義されており、変更される可能性大
(VC++10ではenum classがサポートされないからだと思う)

namespace std {
  namespace posix_error {
    enum posix_errno {
      address_family_not_supported,
      address_in_use,
      ...
    };
  }
}


・<type_traits>は、enable_ifやcommon_typeもあるからOKっぽい


・でも<chrono>がないからcommon_typeはあまり必要なかったり


・<initializer_list>と_HAS_INITIALIZER_LISTSというdefineがあり、
 その実装も用意はされているがVC++10 Beta 1ではinitializer_list非対応


・各コンテナにPlacement Insertのメンバがあるが、VC++10では可変引数テンプレート非対応なので、
 emplace_backは受け取ったパラメータをpush_backしてるだけ


・<thread>なし。Visual Studio 2010って並列性に力を入れてるんじゃなかったっけ・・・。
 まだβだし、もしかしたら製品では入るかも


・std::swapは相変わらずif文入ってる


・std::copy_if等の新規アルゴリズムなし


・<numeric>にstd::iotaはあった


・std::unique_ptrあった