
On 7 Mar 2011, at 21:06, Artyom wrote:
Cons/Problems: -------------- Points I think that are wrong:
- Move Semantics:
It is not clear, and not documented!
boost::xint::integer a,b; a = 100; b = boost::move(a); // expect like swap(a,b) acts like a=b std::cout << a<<" " <<b << std::endl; // expect 0 100, get 100, 100
integer is container and should behave like container in move context and like like a primitive type - mostly for optimization.
While it will take a while for people to get used to move semantics, in general you shouldn't assume anything about a moved-from value. In particular if a "small-value" optimisation is added, I would expect to see the value sometimes change, and sometimes not, for both xint::integer and std::string. Chris