The upcoming C++ Standard is pretty exciting! Especially lambdas and initializer lists. What's *really* interesting is that they're not adopting a lot of the C99 standard, willingly breaking compatibility in a fairly big way.
That "move semantics" sounds pretty cool. That's been something I've always found frustrating, and my usual answer to it is to just have the "output" be a variable you pass in as a parameter, and have the code modify it that way, instead of returning a new vector.