Alexander Nasonov
> Eric Friedman wrote:
> > 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
>
> Assuming that memcpy to new location followed by memcpy back to original
> allocation is safe, you would do it using two additional storages local to
> operator= function. Let's call them local1 and local2.
[snip]

If I understand you correctly, earlier versions of variant did precisely
what you describe. Unfortunately, the "assumption" you make is false in
general. See http://aspn.activestate.com/ASPN/Mail/Message/boost/1311813.

Eric



_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to