#pragma once #include "../type/type.hpp" namespace util { template inline constexpr T &&forward(type::remove_reference_t &t) noexcept { return static_cast(t); } template inline constexpr T &&forward(type::remove_reference_t &&t) noexcept { static_assert(!type::is_lvalue_reference_v, "Can not forward an rvalue as an lvalue."); return static_cast(t); } } // namespace util