ポインタにメタデータって型情報のポインタ持たせるだけですむのでは?
それで厳格なGCに出来るなら悪くない。
newstruct A{
int a;
}
な構造体っぽい何かなら
struct A {
StructInfo* tag;
int a;
}
struct StructInfo {
int size;
TypeInfo* members;
char* name;
}
struct TypeInfo {
enum Type { STRUCT,INT,CHAR ... }
:
:
とかなんとかってなってて厳格なGCが出来たり、
型サイズチェックできたり、
クラスに拡張したり、いろいろ有用そう。