#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); } } inline void* operator new(size_t, void* addr) { return addr; } inline void* operator new[](size_t, void* addr) { return addr; }