The two assignment operators should be collapsed to one, using [copy and swap](http://stackoverflow.com/questions/3106110/what-are-move-semantics).