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

класс Timer - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Задача: игра "Поймать парасёнка" http://www.cyberforum.ru/cpp-beginners/thread655087.html
Описание "Поймать парасёнка" - один из видов игры в карты. Допустим за игральным столом 4 игрока. Ваша задача посчитать итоговый результат этих игроков, следуя правилам подсчёта указанным ниже: S, H, D, C - соответственно пики, червы, бубны и трефы. Цифры от 1 до 13 соответственно A, 2, ..., Q, K. Например, H1 это червы A, S13 это пики K.
C++ Как обучиться программированию? Всем привет! Кто может научить, все обьяснить по С++. Хочу выучить, помогите. Откликнитесь пожалуйста! http://www.cyberforum.ru/cpp-beginners/thread655053.html
AnsiString обуляет char C++
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1;
C++ Определить, находятся ли слова последовательности в алфавитном порядке
Помогите пожалуйста написать программу: Дана последовательность слов, разделенных пробелами (не обязательно 1 пробел), за последним словом - точка. Определить, находятся ли слова последовательности в алфавитном порядке. Если да, то изменить порядок слов на обратный. Разрешается пользоваться стандартными функциями и объектами класса string. Запрещается использовать контейнер map, векторы и...
C++ работа с изображениями http://www.cyberforum.ru/cpp-beginners/thread655041.html
Всем доброго дня, уважаемые форумчане, подскажите плиз книги или статьи, которые можно прочитать, и узнать о классификации изображений, желательно чтобы были с какими-нибудь примерами или алгоритмами, зарание спасибо
C++ Магический квадрат с клавы вводиться число N. нужно сделать магический квадрат с размерами подробнее

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

Поэтому чаще всего стараются передавать в такие асинхронные штуки обещание выполнения функции (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...);
}
Хотя... это ж синхронный таймер.
 
Текущее время: 06:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru