SPRUIG8J January 2018 – March 2024
Pointer to member function objects have a layout equivalent to:
struct __mptr {
__vptp f;
ptrdiff_t d;
};
where _vptp is the following union:
union {
void (*f) ();
int 0;
}
The parameter f is the pointer to the member function if it is nonvirtual. The 0 is the offset to the virtual function pointer within the class object. The parameter d is the offset to be added to the beginning of the class object for this pointer.