Hi D
As suggested in other threads I've tried wrapping a SumType in a structure to add functionality and used alias ... this
to make assignment, etc. easier. However the following code fails in dmd 2.105.2.
import std.sumtype;
struct Item{
SumType!(void*, byte[3], ubyte[3], string[3]) value;
alias value this;
this(T)(T thing){ value = thing;}
}
void main(){
Item item;
byte[3] byte_vec = [0x01, 0x02, 0x03];
item.value = byte_vec; // <-- works
item = byte_vec; // <-- fails to compile
}
Is there some important detail I'm missing? The compiler error message is:
Error: generated function `test_sumtype3.Item.opAssign(Item p)` is not
callable using argument types `(byte[3])`
cannot pass argument `stuff` of type `byte[3]` to parameter
`Item p`
Thanks for any suggestions,