
Daniel Frey <d.frey@gmx.de> writes:
David Abrahams wrote:
Daniel Frey <d.frey@gmx.de> writes:
David Abrahams wrote:
Rob Stewart <stewart@sig.com> writes:
swap() is typically as fast as or faster than copy assignment,
Not for many types that one might like to reset, such as pointers, shared_ptr<T>, and integral types.
What about exception safety guarantees of assignment vs. swap? What about 'em? Speaking generally, both are basic guarantee operations.
I thought that swap is often (not always) a function which doesn't throw, e.g. containers' x.swap( y ).
Often == sometimes == never guaranteed to be. Same for operator=.
If it is, it would make reset a function with the strong instead of the basic exception guarantee.
But then, this might not be general enough to be worth the trouble... OK, forget about it :)
Premature strengthening of exception guarantees is a common source of inefficiency. -- Dave Abrahams Boost Consulting www.boost-consulting.com