How to define typedef of function pointer which has template arguments

你。 提交于 2019-11-30 06:23:27

问题


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)


回答1:


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


来源:https://stackoverflow.com/questions/14848924/how-to-define-typedef-of-function-pointer-which-has-template-arguments

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!