#pragma once #include #include "casts.h" #pragma warning(disable:4312) namespace meta { template constexpr T s_cast(U&& rhs) noexcept { return static_cast(std::forward(rhs)); } template constexpr T d_cast(U&& rhs) noexcept { return dynamic_cast(std::forward(rhs)); } template constexpr T r_cast(U&& rhs) noexcept { return reinterpret_cast(std::forward(rhs)); } template constexpr T c_cast(U&& rhs) noexcept { return const_cast(std::forward(rhs)); } template constexpr auto&& fwd(T&& fwdee) noexcept { return static_cast(fwdee); } }