なでしこ to C++

何かなでしこソースに、C++化するにはどうとかこうとか書いていたような気がするので、勝手にC++移植を実行
……とりあえず、プラグインSDKだけですが
 
で、いきなり壁にぶち当たりました
なでしこの基本型PHiValue(THiValue)、これの定義は以下の通り

 PHiValue = ^THiValue;
 THiValue = packed record
  VType : THiVType; // 値の型
  Size : Integer; // 値の大きさ
  VarID : DWORD; // 変数名
  RefCount : Integer; // 参照カウント for GC
  Setter : PHiValue; // Setter
  Getter : PHiValue; // Getter
  ReadOnly : Byte; // ReadOnly = 1
  Registered : Byte; // 解放してよい値か?(これが1なら勝手に解放してはならない)
  Flag1 : Byte;
  Flag2 : Byte;
  case Byte of
  0:( int : Longint ); // varInt
  1:( ptr : Pointer ); // other...
  2:( ptr_s : PChar ); // varStr
 end;

……レコードの可変部ってどんな記述をすれば良いんでしょうか?
共用体を使用?
でも、それじゃあアクセスするのに二段階のアクセス演算子が必要になりますよねぇ
むう、調べないと……
 
追記:
む、何か共用体で出来た感じ?