第137章へようこそ。
第136章で、enumとメモリの関係を見ました。
判別子がバリアントを識別し、ニッチ最適化がビットパターンの隙間を活用する。
型のメモリ表現が、コンパイラの知識によって最適化される姿でした。
今日のテーマは「メモリ上の仮想表」です。vtableの構造を見ます。
第129章で、トレイトオブジェクトのファットポインタを学びました。
データへのポインタとvtableへのポインタ。合計16バイト。
vtableとは仮想メソッドテーブルであると語りました。
しかし、vtableの中身は見ていません。
vtableはメモリ上でどのような形をしているのか。
何が記録されていて、どうやって使われるのか。
なぜこの構造が必要なのか。
動的ディスパッチの心臓部を、バイトの粒度で見ていきます。