13 Jun
2017
13 Jun
'17
5:07 p.m.
Gottlob Frege wrote:
This is basically why I'm satisfied with std::variant - move should never throw. If it does, it was a tiny allocation, and you were screwed anyhow. No one should have a move that does a large allocation.
So in my world, std::variant already has the never-empty (and never valueless_by_exception) guarantee.
Why are you then so insisting on the strong guarantee? It's only relevant when an operation throws.