#topicpath ////////////////////////////////////////////////////////////////////////////// * 目次 [#pa168adc] #contents(); ////////////////////////////////////////////////////////////////////////////// * C++11 のキーワード (取り敢えず関心のあるものだけ) [#m4713ac6] ** スコープ付き列挙型(enum) [#rc87b048] ** アライメントの指定 [#vb8529d6] ** std::nullptr [#lb7c9c62] ** 参照修飾子 [#re106fd3] ** 移譲/継承 コンストラクタ [#rd52b5a3] ** explicit な型変換演算子 [#o4c7c9aa] ** ラムダ式 [#o22dfb12] [キャプチャ] (仮引数リスト) -> 戻り値の型 { 関数の中身 }; - キャプチャ -- ラムダ式から参照するオブジェクトを指定。ラムダ式の定義されたスコープにあるオブジェクトのうちでラムダ式が参照できるのは、キャプチャで指定されたものに限られる。 -- キャプチャは以下の2種類がある --- 参照キャプチャ:オブジェクトが参照で渡される --- コピーキャプチャ:実体のコピーが渡される -- 記述方法 |~記述 |~意味 | |[=] |全てをコピーキャプチャ。メンバ関数内の場合は this も対象となる | |[&] |全てを参照キャプチャ | |[hoge] |オブジェクト hoge をコピーキャプチャ | |[&hoge] |オブジェクト hoge を参照キャプチャ | |[=, &hoge] |オブジェクト hoge を参照キャプチャ、それ以外はコピーキャプチャ | |[&, hoge] |オブジェクト hoge をコピーキャプチャ、それ以外は参照キャプチャ | ** 属性 [#we1705b4] - noreturn -- 呼び出しても戻ってこない関数の記述に使用する [[ noreturn ]] void f(); -- noreturn 属性を指定された関数が throw を送出すれば、その関数から「戻る」ことが可能。 -- noreturn 属性を指定された関数が return 文を実行したり、関数末尾に到達して呼び出し元に戻った場合の挙動は未定義。 - carries_dependency -- 関数間でデータの依存性を伝播するために使用する -- ''詳細は要確認'' ** 例外 [#w63a2c53] *** 例外クラスの使い分け [#kb44dcdd] *** 例外を創出しないことを明示する [#l975009b] *** 例外ポインタ [#b703371f] *** 入れ子の例外関連 [#if27cf02] ** 文字列を数値に変換する [#jbebeab0] ** 正規表現での検索 [#ff98d5c1] - regex は g++4.7 では未実装なので動作しない(4.9で実装済みらしい)~ → [[Bug 53631 - [C++11] <regex> is unimplemented>https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631]] ** 浮動小数点数の入力 [#o476bddb] ** 日付・時刻 [#o44a5361] - #include <iomanip> ** 乱数生成 [#mc805a6d] - #include <random> ** shared_ptr (共有ポインタ) [#u9cdb048] - 通常のポインタ同様の操作が出来る - 複数の std::shared_ptr が1つのリソースを指し示すことが出来る - 同じリソースを参照する std::shred_ptr が1つもなくなった時、そのリソースは自動的に開放される ** unique_ptr [#u0c9fb94] ** 複数の値から、最大値または最小値を選択する [#hfd09405] ** 2つの変数を入れ替える [#s458c40d] ** コンパイル時にアサーションを行う [#db4bc5bc] ** 浮動小数点数の四捨五入 [#a44e97e9] ** 数学関数 [#b2da218a] ** 関数オブジェクトを変数に持つ [#z1d24402] - #include <functional> ** 時間演算を行う [#j45d63eb] - #include <chrono> ** タプル [#g6c7a34b] - #include <tuple> ** システム終了 [#gf1533a6] ** スレッド [#q6531554] - → [[Lang/C++/C++11/thread]] ////////////////////////////////////////////////////////////////////////////// * build (g++) [#r110442c] - コンパイラオプションに "-std=c++11" または "-std=c++0x" の追加が必要となる場合がある