Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
maxm
60 / 32 / 8
Регистрация: 17.07.2014
Сообщений: 436
#1

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

09.08.2016, 15:19. Просмотров 270. Ответов 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*(как вариант?)).
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.08.2016, 15:19     Аналог декоратора Python или ненормальное програмирование
Посмотрите здесь:
Есть ли какой-нибудь аналог c# using или python with в c++ ? C++
C++ Linux odt2txt: преобразование или аналог.
Python или C++? C++
Edit и UpdateData или его аналог C++ Builder
Аналог типа time_t в Си++ или Borland'е C++ Builder
Есть ли в С аналог функции explode(или split)? C++
Аналог процедуры str в Си++ или как реализовать? C++
Вопрос по boost или Qt: нужен аналог функции WinApi GetModuleFileName() Boost C++
Аналог GetCommandLine() или как получить в программе строку аргументов C++ Linux
Ищу бесплатные IDE, требования: аналог TBitmap или CBitmap C++
C++ PlaySound или аналог для проигрывания двух и более звуков
C++ Builder Аналог Hide Folders (Скрытие/блокировка папок или отдельных файлов)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nimazzzy
Заблокирован
09.08.2016, 16:06     Аналог декоратора Python или ненормальное програмирование #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
variadic templates
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru