```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.

Reply via email to