Форум программистов, компьютерный форум, киберфорум
Наши страницы

Аналог декоратора Python или ненормальное програмирование - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как из wav файла получить читаемый txt, а потом обратно http://www.cyberforum.ru/cpp/thread1791304.html
Извиняюсь если не совсем по адресу, но я уверен что местные читатели знают как это сделать. Суть моей проблемы. Я хочу смоделировать звучание гитарной струны при помощи физических формул. ...
C++ Остановка рабочей функции потока День добрый. Задумался над таким вот вопросом. Допустим, у меня есть две функции get(StopObj obj) и process(StopObj obj). Эти две функции я запускаю из нескольких потоков. Сам StopObj obj это некий... http://www.cyberforum.ru/cpp/thread1791184.html
C++ Variadic templates, или variadic constructor в шаблоне, или прочие извращения
Здравствуйте. Есть такое Wrapper<Obj> w; Wrapper - обертка над объектом того класса, который ему скормят (в данном случае - Obj). Сложная обертка со своей жизнью и делами. Одну из вещей, которая...
C++ Как сделать ftp клиент через libcurl?
добрый день! подскажите, пожалуйста, как сделать ftp клиент через libcurl? а точнее, мне нужно видеть файлы, находящиеся на сервере. у меня получилось подключиться к своему серверу и залить...
C++ Освобождение памяти после std:bind http://www.cyberforum.ru/cpp/thread1788295.html
Что имею: - CentOS - gcc 4.8 - valgrind Что делаю - С помощью valgrind устраняю утечки - Если приложение остановлено штатно, то все утечки я устранил - Если останавливаю с помощью...
C++ Runtime error при открытии lua-скрипта Всем доброго времени суток. Есть функция, задача которой прочитать lua-скрипт и перенести значения параметров из него в структуру. Код немного условный, потому что инициализация, подключение... подробнее

Показать сообщение отдельно
maxm
62 / 34 / 8
Регистрация: 17.07.2014
Сообщений: 456

Аналог декоратора Python или ненормальное програмирование - C++

09.08.2016, 15:19. Просмотров 307. Ответов 1
Метки (Все метки)

Всем привет.
Часто приходится делать одну и ту же вещь в коде:

C++
1
2
3
4
DWORD time = ::GetTickCount();
bool result = SomeFunc();
while(!bOK && ::GetTickCount() - time < DEFINED_TIMEOUT)
    result = SomeFunc();
Что же тут происходит? Есть некая ф-ция, пусть будет SomeFunc. Мы должны иногда выполнять ее пока не достигнем нужного результата или пока не выйдет время таймаута. Например, ф-ция проверяет, появилось ли окно на рабочем столе, чтобы затем сделать с ним какие то манипуляции.

Собственно сам вопрос. Можно ли написать какой нибудь класс SmartWaiter (или же функцию), которая бы принимала в себя SomeFunc и целое число - TIMEOUT? Фишка в том, что таких функий, как SomeFunc, очень много, и почти все принимают разное число и разные типы параметров. Возможно ли реализовать что то типа универсального таймера, чтобы на вход принимались только указатель на SomeFunc (независимо от кол-ва и типа аргументов) и TIMEUOT, а затем обьект заставлял функию выполняться n раз пока не достигнем результата или же не выйдет наш TIMEOUT?

P.S. Допускаем вариант передачи указателя и параметров, с которыми мы хотим выполнить эту функцию. Тогда постает вопрос, как наилучшим образом их обработать и как собственно прописать такой указатель как аргумент нашего таймера(void*(как вариант?)).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.