我想为函数指针创建typedef,其中stl容器作为参数,并且此容器具有未知类型。像这样:
typedef void (* TouchCallBack)(GLRenderer*, const MotionEvent&, std::vector<T >);
有可能吗? (特别是在c ++ 03中)
答案 0 :(得分:30)
我不知道任何C ++ 03解决方案与此类似,并且它没有内置于该语言中,但在C ++ 11中,这可以通过using
别名来实现:
template<typename T>
using TouchCallBack = void (*)(GLRenderer*, const MotionEvent&, std::vector<T >);
C ++ 03的一个解决方法是使用结构:
template<typename T>
struct TouchCallBack {
typedef void (*type)(GLRenderer*, const MotionEvent&, std::vector<T >);
};
//use like TouchCallBack<int>::type