October 2023
Intermediate to advanced
408 pages
6h 37m
Japanese
ここまで度々述べてきましたが、関心の分離と値セマンティクスは本書の大きな 2 本柱です。本章ではこの 2 つを組み合わせた、Modern C++ の中でもひときわ面白いデザインパターン、Type Erasure パターンを取り上げます。Type Erasure パターンは現在も大きく進化を遂げている途上にあるため、細かく、そして深く、すべての面を解説します。設計面に限らず、もちろん実装詳細の具体例も多数取り上げます。
「ガイドライン 32」では、Type Erasure パターンを紹介し、依存関係削減と値セマンティクスの組み合わせが強力である理由を述べます。また、自らが所有する (所有権を持つ) Type Erasure パターンの基本的実装を全般的に説明します。
「ガイドライン 33」は例外的な位置付けです。本書は依存関係と設計を主眼にしていますが、本ガイドラインだけは性能を主眼にした実装詳細を解説します。小さいバッファの最適化 (SBO、Small Buffer Optimization)、および Type Erasure パターンを高速化する、仮想関数の手動ディスパッチを説明します。
「ガイドライン 34」では、所有権を持つ Type Erasure パターン実装のセットアップコストを掘り下げます。値セマンティクスに付随し発生する、あまり嬉しくないコストが見えるようになります。そのため、敢えて参照セマンティクスの世界へ足を踏み入れ、所有権を持たない Type Erasure パターンを実装します。
本書には、全体を通じ、繰り返し提言していることがあります。 ...
Read now
Unlock full access