Listing 2: External member function adaptor.

template<typename ReturnType,
         typename ClassType,
        typename ArgType
        >
extern_mem_fun_t<ReturnType,ClassType,ArgType>
extern_mem_fun(ReturnType (ClassType::*pmf)(ArgType),ClassType* ct)
{
  return(extern_mem_fun_t<ReturnType,ClassType,ArgType>(pmf,ct));
}