Two questions...
What does operator->* do? (and operator.* also)

and

Is it possible to overload the operator-> so that some function tacked on to the end of it is applied to a bunch of other objects?

Ie:
Code:
template<class T> class Set {
  std::vector<T> members;
  //...other stuff
};
Set<Expression> s_e;
s_e->combine();
Where s_e->combine() would call that function of every 'T' in members?