Я получил этот класс:Функции указатель шаблона класса член
template <class T>
class list
{
...
bool moreThan(T x, T y);
bool lessThan(T x, T y);
...
};
мне нужен указатель на функцию, чтобы изменить поведение моего класса, и переключаться между использованием bool moreThan(T, T)
или bool lessThan(T, T)
. Так что я в настоящее время использую:
bool (list<int>::*foo)(int x, int y);
foo = &list<int>::lessThan;
и использовать его:
(this->*foo)(x, y);
, но я хотел бы иметь гибкий указатель на функцию, так что я могу использовать его с какой T
мне нужно, не только int
. Итак, есть ли способ создать указатель на элемент шаблона класса? Что-то вроде:
template <class T>
bool (list<T>::*foo)(T x, T y); //this doesn't work
Вы будете бороться с этим, потому что каждая специализация 'list' может иметь другое определение этих функций или даже не определять их вообще! –