January 31, 2018 Union Initialization | ||||
---|---|---|---|---|
| ||||
Is there any way to initialize an array of unions with more than just the first union type? struct A { float a; } struct B { uint b; } union Test { A a; B b; } Test[2] test = [ Test(A(1.0f)), Test(B(10)), // ERROR ]; AFAIK there's no way to specify to use D with an initializer: Test test = { b: B(10) }; |
January 30, 2018 Re: Union Initialization | ||||
---|---|---|---|---|
| ||||
Posted in reply to Rubn | On 01/30/2018 07:33 PM, Rubn wrote:
>
> Is there any way to initialize an array of unions with more than just the first union type?
>
>
> struct A { float a; }
> struct B { uint b; }
>
> union Test
> {
> A a;
> B b;
> }
>
> Test[2] test =
> [
> Test(A(1.0f)),
> Test(B(10)), // ERROR
> ];
>
>
> AFAIK there's no way to specify to use D with an initializer:
>
> Test test = { b: B(10) };
You can have explicit constructors:
union Test
{
A a;
B b;
this(A a) {
this.a = a;
}
this(B b) {
this.b = b;
}
}
Ali
|
Copyright © 1999-2021 by the D Language Foundation