C++0xの概要はこちら

・Angle bracket

テンプレートの連続した山カッコの問題の解決

・初期化子リスト

ユーザー定義のクラスで配列のような初期化構文を実装可能になる

・Uniform initialization

コンストラクタの構文と初期化子リストの構文が一様になる

・デリゲーティング・コンストラクタ

コンストラクタから他のコンストラクタを呼び出せる

・auto

型推論

・記憶クラス指定子としての auto の削除

autoキーワードの意味が変更になるため、下位互換がなくなる

・decltype

sizeofの型版

・Template Aliases

テンプレートを使用して型の別名を付けることができる。いわゆるtemplate typedef

・拡張sizeof

構造体/クラスのメンバをインスタンス化せずにsizeofすることが可能になる

・nullptr

ヌルポインタを表すキーワード追加

・char16_t, char_32_t, raw string literal, UTF-8リテラル, 文字列リテラル中のユニバーサルキャラクタ名

文字列関係。UTF-8/16/32, エスケープシーケンス無視

・右辺値参照・ムーブセマンティクス(std::move, std::forward)

一時オブジェクトのコストをなくし(減らし)、完璧な転送を実現する

・メンバ関数のlvalue/rvalue修飾

オブジェクトが左辺値の場合のみ呼べるメンバ関数、右辺値の場合のみ呼べる関数

・コンセプト(late_check, Axiom)

テンプレートのエラーメッセージを改善し、テンプレートの多くの手法を言語で総括的にサポートする

・Range-base for文

コンテナ, 配列をループするための新たなfor文

・static_assert

コンパイル時アサート

・constexpr(前編, 後編)

定数式

・ラムダ式

匿名関数オブジェクトを生成するための式

・Variadic Templates, Variadic Template Template Parameters

可変引数テンプレート

・Strongly Typed Enums

スコープと強力な型付けを持ったenum

・enumの先行宣言を許可

・列挙子の最後のカンマ

・メンバ初期化子(auto許可?)

メンバ変数の新たな初期化

・Defaulted and Deleted Functions

コンパイラが自動的に生成する関数の制御

・explicit conversion

明示的な型変換

・explicit bool

"conversion to unspecified bool"というイディオムを言語でサポート

・Default template arguments for function templates

関数テンプレートのデフォルトテンプレート引数

・新たな関数宣言構文, 統一された関数宣言構文(?)

戻り値の型を後置する関数宣言構文

・継承コンストラクタ

派生クラスで基本クラスのコンストラクタを使用できる

・ユーザー定義リテラル

サフィックスを自作することができる。例えば2進数リテラル

・Extern Template

潜在的なテンプレートのインスタンス化を抑制

・inline namespace

透過的な名前空間

・拡張friend宣言

テンプレートパラメータとtypedef名をfriendにすることができる

・alignof

アライメントの指定と取得

・無制限Union

共用体(union)でクラスオブジェクトを持てる

・thread_local

スレッドローカル記憶域

・ローカル型と無名型をテンプレート引数として使用

関数内で作成したクラスのオブジェクトをvectorに保持したりできる

・POD再考

POD型の定義を見直し

・SFINAE問題の解決

今まであいまいだったSFINAEの仕様を明確化

・一般化された属性

コンパイラごとに存在する属性構文(__declspec, __attribute__, etc...)を一般化

・POSIX用の名前空間を予約

posix名前空間を予約

・暗黙に削除される特殊メンバ関数

デフォルトコンストラクタ、(以下略)が暗黙に定義されるとエラーになるクラスでは、delete扱いにする

・ガベージコレクションと到達可能性ベースリーク検知の最小支援

GCの最低限の決めごと

・basic_stringの要素の連続性の保証

・C99対応

long long intとか可変引数マクロとか

・最低限推奨される数

テンプレートの再帰数とか

ライブラリ

・TR1(Technical Report 1)

主にBoostから移植されるライブラリ群(スマートポインタ, 乱数生成器, 正規表現...)

・unordered_map / unordered_set

ハッシュ表

・chrono

日付／時間ライブラリ

・thread

スレッドライブラリ

・forward_list

単方向リスト

・More STL Algorithm

追加されるSTLアルゴリズム

・Placement Insert

コンテナに要素を追加する際、コピーのコストをなくす

・system_error

OS固有のエラー情報を取得する

・エラーハンドリング設計のガイドライン

system_errorを使用したエラー通知の設計

・Scoped Allocator Model

コンテナ内のコンテナの各要素にアロケータを指定できる

・enable_if

コンパイル時条件によるオーバーロード

・Numeric Convertion

basic_stringと数値の相互変換(to_string, stoi, etc...)

・可変引数min/max/minmax

initializer_listによるmin/max/minmax関数

・default_random_engine

デフォルトの乱数生成器型

・is_sorted

範囲がソート済みか判定するアルゴリズム

・vector::data, shrink_to_fit

std::vectorに追加されるメンバ関数

・map::at

map::operator[] constの代わり

・cbeginとcend

const_iteratorを返すbegin()とend()

・Shared_ptr atomic access

shared_ptrの排他アクセス

・コード変換

wstring/stringの変換

・std::type_index

連想配列のキーにtype_infoを使用

・IOマニピュレータ

hexfloatとdefaultfloatを追加

・標準コンテナのsize()の計算量を規定

size()メンバ関数の計算量をO(1)にする

・ファイルの位置操作で現代的なファイルサイズを扱えるようにする

・next/prev

イテレータをn個進める／戻す

・std::addressof

operator&がオーバーロードされた型の変数に対してもアドレスを取得できる

・std::swapが定義されているヘッダファイルが変更

・標準ライブラリのconstexpr対応

とりあえずデフォルトコンストラクタのみ

あとで消す

noncopyable

演算子のオーバーロード

60進数リテラル