What is the purpose of the following esoteric C++ operators?
Pointer to member
::*
Bind pointer to member by pointer
There's no such operator as ::* and there's never been. I don't know where you got it.
As for ->* and .* - these are dereference operators for pointers of pointer-to-member type.
struct S {
int i;
};
int main() {
int S::*pi = &S::i; // pointer of pointer-to-member type
S s;
S* ps = &s;
s.*pi = 0; // operator `.*` used
assert(s.i == 0);
ps->*pi = 1; // operator `->*` used
assert(s.i == 1);
}
As for what pointers-to-members are... what does your favorite C++ book say on the subject?