万能参照(T&&)・std::forward・ゼロコピー直接構築・イベントディスパッチャ
なぜ std::make_shared<Enemy>(x, y, "Boss") や vector::emplace_back(args...) は、どんな個数・どんな型の引数であっても、余分なコピーや一時オブジェクトを作らずに目的のクラスのコンストラクタへ直接届けることができるのでしょうか?その背後にある超重要メカニズムが、C++11の2大巨頭【可変引数テンプレート(Variadic Templates)】と【完全転送(Perfect Forwarding)】です。「万能参照(フォワーディング参照 T&&)」と「std::forward<T>」を正しく理解することは、現代的な汎用ライブラリ、ファクトリ、イベント駆動システムを自作するための必須教養です。本章では、パラメータパックの展開技法から、ゲーム内の任意イベントを型安全にブロードキャストするゼロオーバーヘッドなメッセージハブの実装までをステップバイステップで解明します。
なぜモダンC++の標準ライブラリは、あらゆるコンストラクタ引数をそのまま透過できるのかを解き明かします。
右辺値参照と同じ「&&」記号でありながら、まったく異なる挙動をする万能参照の仕組みを解明します。
ゲーム内のあらゆるイベント(被弾、アイテム取得、ステージクリア)を任意引数で通知する基盤を構築します。
ブラウザでJavaScriptを有効にすると、ブラウザ内インベーダーゲームエミュレータ、メモリマップ可視化、UMLクラス図、対話型解説、理解度クイズが起動します。