VO
Size: a a a
VO
CD
VO
VO
CD
struct A {
int x;
void foo();
};
static_assert(sizeof(&A::x) == sizeof(void*));
static_assert(sizeof(&A::foo) == 2*sizeof(void*));
CD
VO
VO
MD
CD
ПК
MD
control_block
остаётся incompleteCD
ПК
control_block
остаётся incompleteПК
ПК
CD
struct A;
void f(A* a, void (A::*f)()) {
(a->*f)(); //OK o_O
}
MD
control_block
всё же incomplete в контексте foo
MD
struct A;
void f(A* a, void (A::*f)()) {
(a->*f)(); //OK o_O
}
ПК
control_block
всё же incomplete в контексте foo