On Friday, October 12, 2012 10:29:06 monarch_dodra wrote: > On Friday, 12 October 2012 at 08:20:42 UTC, Jonathan M Davis > > wrote: > > On Friday, October 12, 2012 10:09:22 monarch_dodra wrote: > > > > If that's what you're "supposed" to do, it's only because > > opAssign is annoying > > enough to check its invariant. Without the invariant, that's > > not something > > that would normally make sense to do. And it's _not_ what you > > do with a built- > > in type. > > > > int i = void; > > i = 5; > > > > is perfectly legal. I see no reason why > > > > S s = void; > > s = S(17); > > > > [SNIP] > > > > - Jonathan M Davis > > The issue with initializing with void actually has nothing to do > with invariants. > > Try that code defining S as RefCounted!int and see what happens.
That just means that the problem goes further than just invariants. It's still a big problem for invariants. - Jonathan M Davis
