Я разрабатываю приложение на С ++ для кросс-платформенной 32-битной встроенной системы (Windows и Linux). Для одной необходимой функции мне нужно рассчитать разницу во времени в миллисекундах. Во-первых, самая большая точность, которую дает временная метка эпохи для 32-битных систем, - это секунда. Большинство соответствующих ответов, с которыми я столкнулся, связаны либо с 64-битными, например с использованием std :: clock, либо с std :: chrono, например:
std::chrono::duration_cast<std::chrono::milliseconds>(now.time_since_epoch()).count();
Или специфично для системы, используя
#include <sys/time.h>
или функция GetSystemTime в Windows. Я также проверил функции времени, связанные с poco, но они также основаны на использовании 64-битных переменных. Можно ли это сделать с помощью существующей стандартной или внешней библиотеки C ++ или мне следует придерживаться другого подхода?
chrono::system_clock
часто имеет точность 1 с, аchrono::high_resolution_clock
не начинается с эпохи. - person rustyx   schedule 12.02.2017