12345678910111213141516171819202122232425 |
- /*
- * Copyright 2016 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
- #ifndef SkExchange_DEFINED
- #define SkExchange_DEFINED
- #include <utility>
- namespace skstd {
- // std::exchange is in C++14
- template<typename T, typename U = T>
- inline static T exchange(T& obj, U&& new_val) {
- T old_val = std::move(obj);
- obj = std::forward<U>(new_val);
- return old_val;
- }
- }
- #endif // SkExchange_DEFINED
|