размеров полей в кейсах, в независимости от типов полей?
Типа условно размер
[<Struct>]
type Foo = Foo1 of a:string | Foo2 of b:string | Foo3 of c:string
Будет: 3 * size<pointer> + size<int> (int на тег (ну и плюс выравнивание))
Пока что да, но это хотят исправить. https://github.com/dotnet/fsharp/pull/15738
Вообще, нет, не должно быть так из-за паддингов.
Современные компиляторы будут оптимизировать положение полей в памяти, иногда для этого надо вставлять "пустоту".
Нет, не всегда, по дефолту там по Auto делается компактификация полей
Обсуждают сегодня