I am trying to make a member function call to all objects returned by an iterator. mem_fn is giving me an error when trying to call get_pointer() for a reference object. There is no overload for get_pointer of a reference object. Is there some reason or should I be doing this differently. The long description is that I am iterating over a container of objects. I would like to make a member function call on each of these objects. Then I get an error that there is no matching function for get_pointer( obj ). I have solved this by providing my own get_pointer() overload specifically for obj to prevent any bad things from happening until I can found out what the real problem is. Here is some pseudo code to get things in the right orientation. class obj { public: void method(); }; class obj_iterator { public: obj& iterator::operator*() const { return obj_; } }; class obj_container { public: obj_iterator begin(); obj_iterator end(); } { ... obj_container c; foreach( c.begin(), c.end(), mem_fn( method ) ); } Thanks, ...Duane