Я пытаюсь использовать структуру в качестве оболочки для функции-члена класса.У меня есть шаблонная структура, которая должна содержать указатель на функцию-член, но в общем смысле, не указывающую на конкретную функцию экземпляра.Я уже разобрался со спецификацией шаблона, но не смог выяснить синтаксис для хранения функции.
Более ясно : у меня есть класс X
, который не имеетстатическая функция doY()
и doZ()
.В классе, который я создал, класс A
, у меня есть экземпляр X
с именем ex
.В зависимости от ситуации я хочу вызвать одну из функций.Я сделал структуру под названием wrapper
.Wrapper
должен хранить ссылку на doY()
или doZ()
в статической переменной с именем function
с использованием спецификации шаблона.После этого я смогу вызвать ex.wrapper::function
для запуска ex.doY()
или ex.doZ()
.
Это текущая версия моего кода (показывающая специализацию для некоторого класса B), которая приводит к func is not a member of wrapper
ошибка
.ч
template <class T>
class A
{
T timer;
X ex;
template<class Type>
struct create_timer_getter{};
void doSomething()
{
timer = ex.wrapper<T>::func();
}
};
.cpp
template <>
struct A<B>::wrapper<B>
{
// V-- this is where I am having issues --V
static const X::(func)(int, int, char) = &X::doY
}