On Friday, 20 September 2024 at 09:38:54 UTC, Dakota wrote:
I need my struct defined as `isZeroInit`, so can I can import
them as `di` file. (this also reduce build size)
But I find this problem with float inside union:
```d
struct test_t {
union {
int i32;
float f32;
}
}
static assert(__traits(isZeroInit, test_t) );
```
```sh
Error: static assert: `__traits(isZeroInit, test_t)` is false
```
I consider this is compiler bug
Fix: https://github.com/dlang/dmd/pull/16858
(it may take years to get fixed), so I am here to ask any way
to workaround this problem?
Write `= void` for each field with non-zero init:
```
union {
int i32;
float f32 = void;
}
```
Thanks to Dennis for the workaround.