Calling overloaded function using templates (unresolved overloaded function type compiler error) [duplicate]
This question already has an answer here : Closed 7 years ago . Possible Duplicate: How to get the address of an overloaded member function? I have a function overloaded for a set of types in a class inheritence heirarchy, e.g. Share with FutureShare and OptionShare derived. virtual unsigned rank() const { return getValue(*this, rank_, &ShareUtils::getRank); } template<typename TShare , typename TMember, typename TGetMemberFunc > TValue& getValue(const TShare& share, boost::optional<TMember>& member, TGetMemberFunc func) { if(!member) { member.reset(func(share)); } return *member; } boost: