clang++ でのビルドと iostream から、クラスと RAII・STL・テンプレート・スマートポインタ・ranges とスレッド、そして CMake とユニットテストまで。全50レッスンで「資源の寿命を型に任せ、小さなツールを 1 本ビルドして配れる」ところまで進みます。コード・コンパイルエラー・サニタイザの報告はすべて clang++ 21(C++23)で実際に動かしたものです。
全50レッスンを7つの章に分けています。第1章から順に進めるのがおすすめですが、 気になるところだけ拾い読みしてもかまいません。 ※ C++ はブラウザ内で実行できないため、手元の clang++ 16 以降か g++ 13 以降(C++23 対応)でコンパイルして試してください。C の知識(ポインタと malloc)がある前提で書いています。
C で書けるコードを C++ の道具で書き直しながら、iostream・参照・名前空間・auto・範囲 for・オーバーロードを覚えます。この章を抜ければ、C のコードを C++ として読み書きできるようになります。
データと振る舞いをクラスにまとめ、コンストラクタとデストラクタで資源の寿命を型に任せます。コピー・ムーブ・演算子オーバーロードまで進み、最後は自分で書いた型が = や + で自然に使えるところまで行きます。
vector・map・set と、それらを串刺しにするイテレータとアルゴリズムを覚えます。自分でループを書いていた処理が <algorithm> の 1 行になり、ラムダ式で「どう比べるか」をその場で渡せるようになります。
同じ処理を型ごとに書き写すのをやめ、テンプレートで 1 本にまとめます。特殊化・パラメータパック・constexpr・コンセプトまで進み、テンプレートのエラーを自分で読めるところまで行きます。
new と delete が壊れる場面を実際に壊して見せてから、unique_ptr と shared_ptr に置き換えます。例外が飛んでも資源が漏れない書き方を身につけ、最後は Rule of Five を自分で書いた文字列クラスで確かめます。
optional・variant・string_view・span・ranges と、スレッドと排他制御を扱います。「無いかもしれない値」「どれかひとつの型」を型で表し、複数の処理を同時に走らせられるようになります。
ヘッダ分割・CMake・ユニットテスト・サニタイザをそろえて、小さなツールを 1 本仕上げます。最後に C や Rust との違いを並べて、次にどこへ進むかの地図を渡します。
全50レッスンを終えたら、次は所有権をコンパイラが見張ってくれる Rust 入門コース や、C++ の土台になっている C 言語入門コース、ビルドしたものを配る サービス公開と運用入門コース へ。メンバーシップで全コースが解放されます。