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

класс Timer - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача: игра "Поймать парасёнка" http://www.cyberforum.ru/cpp-beginners/thread655087.html
Описание "Поймать парасёнка" - один из видов игры в карты. Допустим за игральным столом 4 игрока. Ваша задача посчитать итоговый результат этих игроков, следуя правилам подсчёта указанным ниже:...
C++ Как обучиться программированию? Всем привет! Кто может научить, все обьяснить по С++. Хочу выучить, помогите. Откликнитесь пожалуйста! http://www.cyberforum.ru/cpp-beginners/thread655053.html
AnsiString обуляет char C++
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h"...
C++ Определить, находятся ли слова последовательности в алфавитном порядке
Помогите пожалуйста написать программу: Дана последовательность слов, разделенных пробелами (не обязательно 1 пробел), за последним словом - точка. Определить, находятся ли слова последовательности...
C++ работа с изображениями http://www.cyberforum.ru/cpp-beginners/thread655041.html
Всем доброго дня, уважаемые форумчане, подскажите плиз книги или статьи, которые можно прочитать, и узнать о классификации изображений, желательно чтобы были с какими-нибудь примерами или...
C++ Магический квадрат с клавы вводиться число N. нужно сделать магический квадрат с размерами подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
1244 / 993 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
21.09.2012, 00:40
Тут такое дело, что функцию вы вызываете асинхронно. То есть то, что вы там передаёте в аргументах, уже может быть неактуальным и вообще не существовать на момент фактического вызова.

Поэтому чаще всего стараются передавать в такие асинхронные штуки обещание выполнения функции (thunk) — функцию без аргументов, которая вызывает ваш pow с теми сохранёнными значениями, которые были переданы конструктору обещания. Тогда это обещание можно спокойно выполнить, когда придёт время, так как у него будут личные копии аргументов, которые никуда не пропадут.

Можно писать это руками, но есть уже готовый сахарок: boost::bind / лямбды C++11.

Функций с переменным числом параметров вроде
C++
1
2
3
4
5
6
template<class T, class args>
Timer::Timer(const int sec, T func, args arg)
{
   Sleep(sec * 1000);
   func(arg);
}
нормально сделать можно только через шаблоны C++11:
C++
1
2
3
4
5
6
template<class T, class... Args>
Timer::Timer(const int sec, T func, Args... args)
{
   Sleep(sec * 1000);
   func(args...);
}
Хотя... это ж синхронный таймер.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru