На самом деле, мне это кажется правильным, я не получаю ошибок для этого куска кода:
template< typename C,
typename R,
typename A,
typename F=R (C::*)(A) >
class MemberFuncPtr
{
C & Cmember;
F f;
public:
MemberFuncPtr(C & c, F func):Cmember(c), f(func) {}
R DoIt(A & a)
{
return (Cmember.*f)(a);
}
};
class classA
{
public:
int toInt(double aa)
{
return int(aa);
}
};
int main()
{
classA aInstance;
MemberFuncPtr<classA,int,double> xx(aInstance,&classA::toInt);
return 0;
}
Вы можете наблюдать код здесь .