
On Wed, Mar 2, 2011 at 8:28 PM, Chad Nelson <chad.thecomfychair@gmail.com> wrote:
On Wed, 02 Mar 2011 18:18:33 +0100 Mathias Gaunard <mathias.gaunard@ens-lyon.org> wrote:
This is not a review, just a few comments from going through the docs quickly.
- XInt uses COW and passes everything by value. COW is useless in the presence of move semantics (which the library seems to partially implement), and passing by value everywhere unless you mean to copy is a bad idea.
Thank you for your comments.
Boost.Move wasn't an accepted Boost library at the time I wrote that code, so I didn't feel that I could rely on it. As such, it's only there as an option at present. As it turns out, it's *still* not an official Boost library (though through no fault in it or of its author), so I think my caution is justified.
I don't recall the reason for passing by value offhand, but I believe Boost.Move was part of it. I'll research that before the next update.
Major compiler vendors have already been shipping rvalue reference enabled compilers for a year or more. So any library that doesn't take advantage of move semantics is already starting to look dated. And any library that wants to make the jump from Boost to TR2 or the C++ standard itself is going to have to use all C++0x features that seem appropriate. So please don't let your design be dictated by Boost.Move's status. --Beman