gо
.vtable.
— никрасиваSize: a a a
gо
.vtable.
— никрасиваH
H
H
gо
VIRTUAL_OBJ()
тоже никрасиваState_new(t_MyState, &(MyState){ .x = 0 })
gо
State_new
это функция, а t_MyState
это указатель на vtablegо
VIRTUAL_OBJ(State, MyState, { .x = 0 })
H
gо
State st = VIRTUAL_OBJ(State, MyState, &(MyState){.x = 0});
gо
H
State_impl_MyState
в качестве vptr что тоже некрасивоgо
VIRTUAL_OBJ
это чудовищноH
gо
dyn(State, MyState, { .x = 0 })
gо
gо
H
H
gо
dyn!(MyState { .x = 0 } as State)`