"Eric Friedman" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> But suppose I have a variant v3, with content of a different type (call
it
> T3). Then the assignment v1 = v3 is far more complicated (we can't use
> T1::operator=) and, without double storage, far more dangerous. The
single
> storage implementation behaves as follows:
>
> destroy v1 content
> copy v3 content into v1
You can do this:
destroy v1 content
try to copy v3 content into v1
if that fails, initialize v1 with default c'tor and rethrow
I believe that's what my original Variant does. This creates the
requirement that the default constructor doesn't throw, which is quite
unnerving but imho much less than the double storage requirement - one that
I found so disappointing, I needed to read it twice thinking/hoping I
misunderstood.
Andrei
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost