
--- David Abrahams <dave@boost-consulting.com> wrote:
Member pointer operator
a->*member_object_pointer a->*member_function_pointer
The left hand side of the member pointer operator must be an actor returning a pointer type. The right hand side of the member pointer operator may be either a pointer to member object or pointer to member function.
If the right hand side is a member object pointer, the result is a composite providing lazy access to that member.
"an actor that, when invoked, returns a reference to that member."
I agree, clearer than my wording, I'll fix that.
For example:
struct A { int member; };
A* a = new A; ...
(arg1->*&A::member)(a); // returns member a->member
If the right hand side is a member function pointer, the result is a delayed function call. The arguments to this call are then bound to the returned composite.
The wording is confusing. "Delayed function call" has not been defined. Why not just say that "the result is an actor that, when invoked, calls the specified member function?" Is that inaccurate?
I think it probably should say that as well, I agree its clearer. Thanks for the feedback. Dan ___________________________________________________________ To help you stay safe and secure online, we've developed the all new Yahoo! Security Centre. http://uk.security.yahoo.com