/* * Copyright 2015 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SkUtility_DEFINED #define SkUtility_DEFINED #include "SkTLogic.h" namespace skstd { template inline remove_reference_t&& move(T&& t) { return static_cast&&>(t); } template inline T&& forward(remove_reference_t& t) /*noexcept*/ { return static_cast(t); } template inline T&& forward(remove_reference_t&& t) /*noexcept*/ { static_assert(!is_lvalue_reference::value, "Forwarding an rvalue reference as an lvalue reference is not allowed."); return static_cast(t); } template add_rvalue_reference_t declval(); } // namespace skstd #endif