13 lines
393 B
C
13 lines
393 B
C
|
#pragma once
|
||
|
|
||
|
inline void**& GetVirtualTable(void* baseclass) {
|
||
|
return *reinterpret_cast<void***>(baseclass);
|
||
|
}
|
||
|
|
||
|
inline void* GetVirtualFunction(void* vftable, size_t index) {
|
||
|
return reinterpret_cast<void*>(GetVirtualTable(vftable)[index]);
|
||
|
}
|
||
|
|
||
|
template <typename Fn> inline Fn GetVirtualFunction(void* vftable, size_t index) {
|
||
|
return reinterpret_cast<Fn>(GetVirtualTable(vftable)[index]);
|
||
|
}
|