Как обнулить TimePoint?

Всем привет.Как сделать чтоб переменная code_delay_start типа TimePoint принял значение 0. Нужно это чтоб при первом запуске функции high_resolution_clock::now() - code_delay_start была равна нулю.И надо чтоб code_delay_start обнулялась в zero_accumulate_ms.Как это сделать?

int accumulate_sleep_mks=0;
auto code_delay_start = std::chrono::high_resolution_clock::now();
int code_delay = 0;

void macro_sleep_ms(register int real_sleep_ms)
{
  code_delay = std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::high_resolution_clock::now() - code_delay_start).count();


  auto start = std::chrono::high_resolution_clock::now();

  std::this_thread::sleep_for(std::chrono::milliseconds(real_sleep_ms - int(accumulate_sleep_mks/1000)));
accumulate_sleep_mks = accumulate_sleep_mks % 1000;

  accumulate_sleep_mks += std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::high_resolution_clock::now() - start).count()- 1000* real_sleep_ms + code_delay -960;


  code_delay_start = std::chrono::high_resolution_clock::now();
}

void zero_accumulate_ms()
{
  accumulate_sleep_mks = 0;
}

Ответы (0 шт):