Listing 4: extern_mem_fun1.

template<typename ReturnType, typename ClassType, typename ArgType,
                                          typename ArgType2>
extern_mem_fun1_t<ReturnType,ClassType,ArgType,ArgType2>
extern_mem_fun1(ReturnType(ClassType::*pmf)( ArgType,ArgType2),
            ClassType* pObj)
{
return(extern_mem_fun1_t
       <ReturnType,ClassType,ArgType,ArgType2>(pmf,pObj));
}