
AMDG Emil Dotchevski wrote:
Also, I am not necessarily advocating strong exception guarantee. I would be fine if the semantics of operator= were such that it may leave the object in a particular unusual state. The problem is that as it is now, it may leave the object in a seemingly OK state.
Yes, I was aware of this workaround and of the one Mathias mentioned.
However, variant<foo,bar,blank> and variant<wrapper<foo>,wrapper<bar>> aren't the same as variant<foo,bar>. I'm questioning the rationale of the current variant::operator= semantics, not necessarily looking for a way to work around them.
It doesn't seem unreasonable to require boost::blank to be listed, in order to allow a variant to be left in a "particular unusual state" In Christ, Steven Watanabe