summaryrefslogtreecommitdiffstats
path: root/base/move.h
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-08 23:02:10 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-08 23:02:10 +0000
commitc8d5fca97530b8c80eaa6b750643a804ff072256 (patch)
tree237634b2403b3f5f1833e8b2f81764c6ff14eef1 /base/move.h
parent71e5874e3bea5a8adb67310e717bcf34ac9d9e65 (diff)
downloadchromium_src-c8d5fca97530b8c80eaa6b750643a804ff072256.zip
chromium_src-c8d5fca97530b8c80eaa6b750643a804ff072256.tar.gz
chromium_src-c8d5fca97530b8c80eaa6b750643a804ff072256.tar.bz2
Erase base/move. The pattern we use is pass by const ref and this is confusing people.
TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/4682003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65444 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/move.h')
-rw-r--r--base/move.h55
1 files changed, 0 insertions, 55 deletions
diff --git a/base/move.h b/base/move.h
deleted file mode 100644
index 118eb0a..0000000
--- a/base/move.h
+++ /dev/null
@@ -1,55 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef BASE_MOVE_H_
-#define BASE_MOVE_H_
-#pragma once
-
-#include <algorithm>
-
-namespace base {
-
-// The move function provides a functional form of swap to move a swappable
-// value leverage the compiler return value optimization and avoiding copy.
-//
-// The type being moved must have an efficient swap() and be default
-// contructable and copyable.
-//
-// C++0x will contain an std::move() function that makes use of rvalue
-// references to achieve the same result. When std::move() is available, it
-// can replace base::move().
-//
-// For example, the following code will not produce any copies of the string.
-//
-// std::string f() {
-// std::string result("Hello World");
-// return result;
-// }
-//
-// class Class {
-// public:
-// Class(std::string x) // Pass sink argument by value
-// : m_(move(x)); // Move x into m_
-// private:
-// std::string m_;
-// };
-//
-// int main() {
-// Class x(f()); // the result string of f() is allocated as the temp argument
-// // to x() and then swapped into the member m_. No Strings
-// // are copied by this call.
-// ...
-
-template <typename T> // T models Regular
-T move(T& x) { // NOLINT : Non-const ref for standard library conformance
- using std::swap;
- T result;
- swap(x, result);
- return result;
-}
-
-} // namespace base
-
-#endif // BASE_MOVE_H_
-