3
Рассмотрим это:Как определение типа во указатель на функцию с аргументами шаблона
typedef void (*ExecFunc)(int val);
class Executor
{
void doStuff() { mFunc(mVal); }
void setFunc(ExecFunc func) { mFunc = func; }
int mVal;
ExecFunc mFunc;
};
void addOne(int val) { val = val+1; } // this could be passed as an ExecFunc.
Очень простой. Предположим теперь, что я хочу запланировать это?
typedef void (*ExecFunc)(int val); // what do I do with this?
template < typename X > class Executor
{
void doStuff() { mFunc(mVal); }
void setFunc(ExecFunc<X> func) { mFunc = func; }
X mVal;
ExecFunc<X> mFunc; // err... trouble..
};
template < typename X > addOne(X val) { val += 1; }
Так как я могу создать указатель функции templatized?
определить его в классе с помощью параметра шаблона. – OMGtechy