built-in types inside of a union

zodd via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Jul 13 05:28:57 PDT 2016


Can I place a dynamic array, an associative array and a string to 
a union and work with all elements? They are built-in types, but 
actually not primitive ones (this is not allowed in C++ for 
example). That's why I'm in doubt. I'm trying to implement 
something close to variant type (with a few restricted underlying 
types) for education purposes.

union Foo {
     int[] array;
     int[string] map;
     string str;
}

Foo u;

u.array = [];
u.array ~= 20;
u.array ~= 31;
writeln(u.array);

u.map = (int[string]).init;
u.map["test"] = 20;
u.map["value"] = 31;
writeln(u.map);

u.str = "test";
writeln(u.str);

This code works as I expected but I'm unsure that it's correct.


More information about the Digitalmars-d-learn mailing list