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
  • Union Initialization Rubn via Digitalmars-d-learn
    • Re: Union Initialization Ali Çehreli via Digitalmars-d-learn

Reply via email to