Функции конфликтуют
#include <vector>
#include <functional>
#include <chrono>
class RTOS
{
public:
bool stop;
RTOS() : stop(false), timer(0) {}
void start()
{
stop = false;
}
void stop()
{
stop = true;
}
void addTask(std::function<void()> task, std::chrono::milliseconds interval)
{
tasks.push_back({task, interval});
}
private:
std::vector<std::pair<std::function<void()>, std::chrono::milliseconds>> tasks;
std::chrono::milliseconds timer;
void run()
{
while (!stop)
{
for (auto& task : tasks)
{
if (timer >= task.second)
{
task.first();
timer -= task.second;
}
}
timer += std::chrono::milliseconds(1);
}
}
};
RTOS os;
int main()
{
os.start();
os.addTask([]() { cout << "Task 1" << endl; }, std::chrono::seconds(1));
os.addTask([]() { cout << "Task 2" << endl; }, std::chrono::seconds(2));
while (true)
{
os.run();
}
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
bool stop;
void stop()
{
stop = true;
}
Так что же такое stop
- переменная или функция?
Дальше рассказывать не надо?