diff --git a/homework/schedule/main.cpp b/homework/schedule/main.cpp index 5e7f08e..a85d636 100644 --- a/homework/schedule/main.cpp +++ b/homework/schedule/main.cpp @@ -27,4 +27,4 @@ int main() { std::cout << "Everything took " << std::fixed << std::setprecision(6) << diff.count() << " seconds\n"; return 0; -} +} \ No newline at end of file diff --git a/homework/schedule/schedule.hpp b/homework/schedule/schedule.hpp new file mode 100644 index 0000000..9226682 --- /dev/null +++ b/homework/schedule/schedule.hpp @@ -0,0 +1,35 @@ +#include +#include +#include +#include +#include + +void schedule(std::function func, std::chrono::seconds duration); +void schedule(std::function func, std::chrono::seconds duration, int number); +void schedule(std::function func, std::chrono::seconds duration, std::string text, double number); + +void schedule(std::function func, std::chrono::seconds duration) +{ + auto start = std::chrono::system_clock::now(); + while ((std::chrono::system_clock::now() - start) < (std::chrono::duration < double>)duration) + continue; + + func(); +} + +void schedule(std::function func, std::chrono::seconds duration, int number) +{ + auto start = std::chrono::system_clock::now(); + while ((std::chrono::system_clock::now() - start) < (std::chrono::duration < double>)duration) + continue; + + func(number); +} + +void schedule(std::function func, std::chrono::seconds duration, std::string text, double number) { + auto start = std::chrono::system_clock::now(); + while ((std::chrono::system_clock::now() - start) < (std::chrono::duration)duration) + continue; + + func(text, number); +}