T.TAO
ブログへ戻る
Programming/全 11 回

C++ プログラミング

メモリレイアウトからモダン C++ の標準までを、下層のマシンを視野に入れながら辿るノート。主な参考書は『C++ Primer Plus』と『CS:APP』。

  1. 01C++ #1 データとメモリC++ がデータをメモリにどう配置するか。組み込み型とそのサイズ、リテラル、そしてコンパイラが暗黙に行う型変換。2024-01-02 · 16 min read
  2. 02C++ #2 Struct と Unionstruct と union によるデータの集約。メンバのレイアウト、パディングとアラインメント、そして union が小手先の技ではなく適切な選択になる場面。2024-01-14 · 14 min read
  3. 03C++ #3 ポインタと配列ポインタが保持するのはアドレスだけ。宣言構文、ポインタ演算、配列とポインタの関係、new / delete による動的確保。2024-01-28 · 11 min read
  4. 04C++ #4 関数プロトタイプ、三種類の引数渡し、関数ポインタ、インライン化、オーバーロード、テンプレート。そしてそれぞれの実行時コスト。2024-02-11 · 24 min read
  5. 05C++ #5 オブジェクトとクラスクラスがメモリ上でどう実体化するか。構築と破棄の順序、this ポインタ、初期化リスト、そして const メンバ関数が実際に何を制約するのか。2024-02-25 · 8 min read
  6. 06C++ #6 継承継承が実際に行っていること。サブオブジェクトのレイアウト、三種類の継承アクセス、コンストラクタ/デストラクタの連鎖、そして菱形継承。2024-03-10 · 8 min read
  7. 07C++ #7 コピー制御と演算子オーバーロードコピー、ムーブ、演算子オーバーロード。三の規則と五の規則、深いコピーと浅いコピー、そして swap が代入を例外安全にする理由。2024-03-24 · 9 min read
  8. 08C++ #8 ポリモーフィズム仮想関数と vtable による動的ポリモーフィズム、デストラクタを仮想にすべき理由、そしてテンプレートが無償で与える静的ポリモーフィズム。2024-04-07 · 16 min read
  9. 09C++ #9 C++11 の新機能C++ の書き方を変えた規格。auto、範囲 for、スマートポインタ、ラムダ、ムーブセマンティクス、nullptr、constexpr、可変長テンプレート。2024-04-21 · 16 min read
  10. 10C++ #10 C++14 の新機能C++14 はパッチ的な改訂。ジェネリックラムダ、戻り値型推論、make_unique、そして C++11 を使いやすくした小さな修繕。2024-06-09 · 8 min read
  11. 11C++ #11 C++17 の新機能C++17。構造化束縛、if constexpr、string_view、optional と variant——日々の書き方を実際に変える機能たち。2024-06-23 · 9 min read