Я работаю над доработкой своего сервера для своего первого приложения для iPhone и хочу реализовать простую небольшую функцию.
Я хотел бы запустить функцию (возможно, также метод), если другая функция возвращает определенное значение после определенного периода ожидания. Довольно простая концепция .... верно?
Вот мой основной фундамент.
template <typename T,class TYP>
struct funcpar{
T (*function)(TYP);
TYP parameter;
funcpar(T (*func)(TYP),TYP param);
funcpar& operator=(const funcpar& fp);
};
Цель здесь - вызвать funcpar::function(funcpar::parameter)
, чтобы запустить сохраненную функцию и параметр, и не беспокоиться ни о чем другом ...
Когда я пытался использовать параметр void * вместо шаблона, я не мог скопировать память как объект (потому что я не знал, каким должен быть конечный объект или начало в этом отношении) и когда я попробовал несколько таймеров, параметр каждого отдельного объекта изменился бы на новый параметр, переданный новому таймеру ... С предыдущей структурой у меня есть
вопрос:
Можно ли сделать всеобъемлющий указатель на этот тип объекта внутри метода класса? Могу ли я шаблонизировать метод, а не весь класс? Будет ли он работать так же, как шаблон функции?
У меня есть управляющий класс, который содержит вектор этих "заданий" и довольно хорошо обо всем заботится. Я просто не знаю, как использовать шаблонизированную функцию со структурой или как использовать шаблоны для одного метода в классе.
Я также использую это в своем обычном простом пуле потоков, и он работает довольно хорошо и имеет те же проблемы ...
У меня есть еще один вопрос:
Можно ли сохранить функцию с параметром до ее запуска? Что-то вроде toRun = dontrunmeyet(withThisParameter);
? Моя структура вообще необходима?
Я неправильно все расскажу?
Если это слишком двусмысленно, я могу настроить весь код для контекста