OM
но это уже детали реализации
тут можно идти двумя путями, либо при вызове кастовать типы c копированием
либо компилировать функции под каждый новый тип с другими оффсетами, но это сломает весь ABI, будет килотонна таких функций
Size: a a a
OM
EM
struct Foo {
public int a;
public int b;
}
struct Bar {
public int a;
public int b;
public int c;
}
void DoSomething(Foo f) { ... }
OM
AT
struct Foo {
public int a;
public int b;
}
struct Bar {
public int a;
public int b;
public int c;
}
void DoSomething(Foo f) { ... }
AT
OM
AT
OM
BD
struct Foo {
public int a;
public int b;
}
struct Bar {
public int b;
public int a;
public int c;
}
YS
EM
FO
AT
BD
struct Foo {
public int a;
public int b;
}
struct Bar {
public int b;
public int a;
public int c;
}
МБ
BD
OM
SO
МБ
BD
__impl_get_x()
и т.д.