/* * 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 namespace skstd { // std::exchange is in C++14 template inline static T exchange(T& obj, U&& new_val) { T old_val = std::move(obj); obj = std::forward(new_val); return old_val; } } #endif // SkExchange_DEFINED