エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
trait objectは、型情報を忘れるかわりにvtableへの参照を持ち回すことで動的ディスパッチを実現してい... trait objectは、型情報を忘れるかわりにvtableへの参照を持ち回すことで動的ディスパッチを実現している。 vtableを生成するコードはrustc_trans::meth 112行目にある。これによると、vtableの構造は以下のとおり。 0番目: Drop Glue をあらわす関数ポインタ (デストラクタ) 1番目: 元の型のバイト数 2番目: 元の型のアラインメント 3番目以降: メソッドへのポインタ (宣言順) Self: Sized 制約のついたメソッドに対応するスロットには0が代入される。 trait objectはSizedではないので、値をコピー渡しすることはなく、fat pointerで渡す。fat pointerの0番目は、もとのデータと同じ先頭番地を指すポインタで、fat pointerの1番目が、vtableの先頭番地を指すポインタである。 実際にvta