我目前有一个使用模板参数的类。我需要一组这些。我怎么能这样做(没有提升)。 例如:
template <typename RET, typename T>
class AguiTimedEvent {
RET (*onEvent)(T arg);
double timeStamp;
public:
RET call(T arg);
bool expired();
AguiTimedEvent();
AguiTimedEvent(RET (*Timefunc)(T arg), double timeSec);
};
我需要这样的东西:
AguiTimedEvent t<int, int>(func, 5.0);
v.push_back(t);
...
v[0].call();
我实际上并不需要返回值,但我只是想让它更灵活。如果返回值导致问题,我可以将其限制为void函数,但是arg需要模板化。我能做什么?感谢
*我需要向量来处理任何类型,我需要一个数组,其中数组可以调度X Y的事件,而不仅仅是int int
答案 0 :(得分:2)
std::vector<AguiTimedEvent<int, int> > v;
如果需要存储具有不同模板参数的不同AguiTimedEvent
类型的对象,则需要创建基类(例如AguiTimedEventBase
)并在vector
中存储指针。
答案 1 :(得分:0)
我没有遇到以下代码的问题:
template <typename RET, typename T>
class AguiTimedEvent {
RET (*onEvent)(T arg);
double timeStamp;
public:
RET call(T arg) {return 0;}
bool expired() {}
AguiTimedEvent() {}
AguiTimedEvent(RET (*Timefunc)(T arg), double timeSec) {}
};
int func(int x) {return 0;}
int main()
{
vector< AguiTimedEvent<int, int> > v;
AguiTimedEvent<int, int> t(func, 5.0);
v.push_back(t);
return 0;
}