int A::* is a pointer to an int data element of type A For example, given the types:
struct Foo { int i; }; struct Bar { double d; };
int Foo::* is a pointer to an int data element of type Foo , the only valid values โโof which are null and the address Foo::iint Bar::* is a pointer to an int data element of type Bar , the only valid value of which is null, since Bar does not contain int data elements
The only requirement for type A is that it is not a primitive type, since primitive types obviously cannot have data members.
source share