#pragma once #include #include namespace M { template static inline T vfunc(CBaseClass* thisptr, Args_t... argList) { using VirtualFn_t = T(__thiscall*)(const void*, decltype(argList)...); return (*reinterpret_cast(reinterpret_cast(thisptr)))[nIndex](thisptr, argList...); } }