diff options
author | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-08 23:02:10 +0000 |
---|---|---|
committer | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-08 23:02:10 +0000 |
commit | c8d5fca97530b8c80eaa6b750643a804ff072256 (patch) | |
tree | 237634b2403b3f5f1833e8b2f81764c6ff14eef1 /base/move.h | |
parent | 71e5874e3bea5a8adb67310e717bcf34ac9d9e65 (diff) | |
download | chromium_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.h | 55 |
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_ - |