44 case tu::n: std::this_thread::sleep_for(std::chrono::duration<double, std::nano>(value));
break;
45 case tu::c: std::this_thread::sleep_for(std::chrono::duration<double, std::micro>(value));
break;
46 case tu::l: std::this_thread::sleep_for(std::chrono::duration<double, std::milli>(value));
break;
47 case tu::s: std::this_thread::sleep_for(std::chrono::duration<double>(value));
break;
48 case tu::m: std::this_thread::sleep_for(std::chrono::duration<
double, std::ratio<60>>(value));
break;
49 case tu::h: std::this_thread::sleep_for(std::chrono::duration<
double, std::ratio<3600>>(value));
break;
50 default:
throw std::invalid_argument(
"Invalid time unit");
99inline std::array<int,3>
splitTime(
int total_seconds) {
100 int hours = total_seconds / 3600;
101 int minutes = (total_seconds % 3600) / 60;
102 int seconds = total_seconds % 60;
103 return {hours, minutes, seconds};