Home - kzono/Cxx_1x GitHub Wiki
C++ 11/14/17/20 のお勉強
C++は 11 以降で大きく変わっている。仕様が広汎でムズカシイので、全部を理解しようとは思わない(汗。よく使いそうで便利な機能は使えるようになりたい。
気になる項目
- 契約に基づくプログラミング 20には入らず、23に延期されたらしい。
- コルーチンマルチスレッド・分散システムで有効なもの?
- コンセプト Haskell の型クラス制約、Rust の traits に相当するものらしい。
- 一貫比較 Haskell の Eq, Ord な型クラスに相当するのか?
- 丸カッコの値リストからの集成体初期化を許可 波括弧初期化との使い分け基準がムズカシクてよくわからない。。。
- 初期化式をともなう範囲for文わかりやすい。
- 指示付き初期化 Rustに似てる?
- fallthrough属性コンパイラに意図を伝えられる。
- 構造化束縛 複数の値を戻り値として返せる。
- 2進数リテラル14で仕様になっていたらしい。
- 数値リテラルの桁区切り文桁数が多いと便利。Java だと_。
- 非静的メンバ変数の初期化コンストラクタが楽になりそう。
- 関数のdefault/delete宣言設計意図が明確になり、安全になる。
- 継承コンストラクタコンストラクタが楽になる。
- 範囲for文とても便利。
- 戻り値の型を後置する関数宣言構文モダンな言語っぽい!
- 右辺値参照・ムーブセマンティクス重要!
- 初期化子リストよく使いそう。
- 一様初期化よく使いそう。
- ラムダ式重要!
- スコープを持つ列挙型名前の衝突を避けられる。
- エイリアステンプレート
- overrideとfinal設計意図を明確にし、事故を防げる。
- nullptrよく使う。
- decltypeタイピング量を減らせる。
- constexpr実は奥が深いらしい。
- auto重要!
- UTF-8文字列リテラル