Kagamin Wrote: > Robert Jacques Wrote: > > > > Should be Algebraic!(T, void). If that doesn't currently compile, we > > > should make it compile. > > > > > > Andrei > > > > For what it's worth, both Algebraic!(T, void*) and Algebraic!(T, void) > > compile on my branch of std.variant. > > can't assign null > > alias Algebraic!(int,void) nint; > nint n1=5; > assert(n1==5); > n1=null; > > \std\variant.d:497: Error: static assert "Cannot store a void* in a > VariantN!(maxSize,int,void). Valid types are (int, void)" > test.d:45: instantiated from here: opAssign!(void*)
Ahh, there's a workaround: alias Algebraic!(int,void) nint; nint n1=5; assert(n1.get!(int)==5); n1=nint(); //uninitialized Variant, sort of null assert(!n1.hasValue); assert(n1.peek!(int)==null); writeln("error here:"); assert(n1.get!(int)==0);