Как определить typedef указателя функции, который имеет аргументы шаблона

Я хотел бы сделать typedef для указателя функции, который имеет stl container в качестве аргумента, и этот контейнер имеет неизвестный тип. Что-то вроде этого:

typedef void (* TouchCallBack)(GLRenderer*, const MotionEvent&, std::vector<T >);

это возможно? (особенно в С++ 03)

Ответы

Ответ 1

Я не знаю ни одного решения С++ 03 точно так же, как и это, и он не встроен в язык, но в С++ 11 это возможно с using псевдонимами:

template<typename T>
using TouchCallBack = void (*)(GLRenderer*, const MotionEvent&, std::vector<T >);

Один способ обхода для С++ 03 использует struct:

template<typename T>
struct TouchCallBack {
    typedef void (*type)(GLRenderer*, const MotionEvent&, std::vector<T >);
};

//use like TouchCallBack<int>::type