I've been watching/reading a little bit about C++0x... what is the difference between Pick semantics and rvalue based "move semantics"?
Actually, it is VERY close To the degree that I was hoping we will adopt rvalue && in U++.
The only problem is that (AFAIK) new C++ standard does not define composition rules. That means you would be forced to implement pick (or move) each time want it, while U++'s "dirty method" makes compiler to do this for you.
Also, small but important difference is IMHO emphasis on making picked object operations illegal. I believe "move semantics" just puts the source into empty state, that would be hell to maintain.
And then, of course, pick in U++ is implicit for many classes, not just optimization...