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 とかもエラーにされたら困る。