strobe
strobe

Reputation: 529

How to define typedef of function pointer which has template arguments

I would like to make typedef for function pointer which has stl container as argument and this container has unknown type. Something like this:

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

it's possible? (especially in c++ 03)

Upvotes: 23

Views: 18396

Answers (1)

Qaz
Qaz

Reputation: 61910

I don't know of any C++03 solution exactly like that, and it's not built into the language, but in C++11, this is possible with using aliases:

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

One workaround for C++03 is using a struct:

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

//use like TouchCallBack<int>::type

Upvotes: 41

Related Questions