Transfer the C++03 move-only type emulation into base/move.h and also make ScopedVector move-only.

Also:
  * Add a lot of documentation explaining what this macro does.
  * Change the implementation of RValue so it cannot be instantiated.

The change to always use RValue& makes for more efficent code in debug builds.  Looking at the disassembly for a simple use case (calling a function with one parameter), it removes the creation of one temporary.

BUG=96118
TEST=new unittests. exist code still compiles.

Review URL: https://chromiumcodereview.appspot.com/9207021

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118388 0039d316-1c4b-4281-b951-d872f2087c98


CrOS-Libchrome-Original-Commit: 59e639aeb0da096e017d0786cfe852319152d74b
5 files changed
tree: 4a60242489f3806fc2f6fba83d40f1202c58797c
  1. base/
  2. build/
  3. dbus/
  4. ipc/
  5. testing/
  6. third_party/