Default struct constructors if a struct member is a union

solidstate1991 laszloszeremi at outlook.com
Sat Jun 29 23:33:41 UTC 2024


```d
union U {
     int i32;
     long i64;
     float f32;
     double f64;
}

struct S {
     TypeEnum type;
     U data;
}

S foo0 = S(TypeEnum.Integer32, S(20));  //Ugly, but works
S foo1 = S(TypeEnum.Integer64, S(20L)); //Error: cannot 
implicitly convert expression
//ditto for the rest of the members
```

My question is can I initialize structs like these in one line 
without relying on a second line? My usecase scenario doesn't 
really allow constructors for the struct, since it's a binding to 
an external library via C API.


More information about the Digitalmars-d-learn mailing list