В настоящее время у меня есть класс, который использует аргументы шаблона. Мне нужен массив из них. Как я мог это сделать (без повышения). например:создание std :: vector шаблона класса?
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 должен быть шаблонизирован. Что я могу сделать? Благодаря
* Мне нужен вектор для обработки любого типа, мне нужен массив, в котором массив может направить события XY, а не только Int Int
я подозреваю, вы имели в виду, чтобы указать вам не заботиться о типе возвращаемого * поэтому вектор должен обрабатывать события различных типов возврата * ? – GManNickG
@GMan да, и произвольных типов аргументов тоже – jmasterx
Вы действительно изучаете повторное создание Boost.Function, Boost.Bind и/или Boost.Signals. Лучше всего либо использовать их, либо смотреть на него, и переписывать его самостоятельно. – GManNickG