#include "vmt.h" namespace vmt { template inline T GetVMethod(uint32_t uIndex, void* pClass) { void** pVTable = *static_cast(pClass); return reinterpret_cast(pVTable[uIndex]); } template inline T CallVirtual(uint32_t uIndex, void* pClass, Args... args) { auto pFunc = GetVMethod(uIndex, pClass); return pFunc(pClass, args...); } } // namespace vmt