C++0x ドラフト n2588 斜め読み

英語は苦手なので間違っているかもしれんが、ざっと目を通してみた。

ラムダ式を<>で開始するするのは遂に諦めたらしい。
関数本体を(...)で記述する方法はなくなったみたい。
Objective-C++で、メッセージ式との区別は一応出来るのかな。

[ローカル変数名] (引数リスト) -> 返却型 { 関数本体 }


inline namespace って、いったい何だろう?


記憶クラス指定子としてのautoは完全に削除された。


コンストラクタの継承

class base
{
  public:
  base(int){}
};
class deriv:public base
{
  using base::base;
  // deriv::deriv(int)が使える。
};


新しい関数宣言構文

auto 関数名(引数リスト)->返却型;


共用体のメンバに出来る型の緩和されてPOD以外の型をメンバに出来る。


ローカルクラスをtemplateの型引数に渡せる。(n2402.pdf)


31章が削除されて ヘッダは無かったことになった。

単方向リストが追加された。

可変長のmin/max関数が追加された。
引数の型はすべて同じである必要があるのか。異なる型でも渡せるようにして欲しかったけど、
今ある2引数のmin/maxとインタフェースが変わるからなぁ。しょうがないか。



あぁ、英語は苦手。後は誰か解説して、おねがい。


その他
n2531.pdf 初期化リスト関連で

double ad[] = { 1, 2.0 }; // ok
int ai[] = { 1, 2.0 }; // error: narrowing

狭化変換をエラーにする提案が出ているみたいだけど、
double -> int とかだけならいいけど
int -> short とかもエラーにされたら困る。