#pragma once #include #include namespace BAN { template constexpr remove_reference_t&& move(T&& arg) { return static_cast&&>(arg); } template constexpr T&& forward(remove_reference_t& arg) { return static_cast(arg); } template constexpr T&& forward(remove_reference_t&& arg) { static_assert(!is_lvalue_reference_v); return static_cast(arg); } }