Мой совет таков: если вам не нужно переходить на C API (например, time_t
) для совместимости с другим кодом, который его использует, просто оставайтесь в <chrono>
(например, std::chrono::system_clock::time_point
). Он имеет лучшую точность и является уникальным типом с семантикой «точка времени» вместо просто целочисленного типа.
То есть мой голос:
void func(std::chrono::system_clock::time_point timePoint);
C ++ 20принесет много возможностей, облегчающих работу с типами <chrono>
, и эти средства созданы на основе прототипа в бесплатной библиотеке с открытым исходным кодом:
https://github.com/HowardHinnant/date
Примечание. Я немного изменил ваше предложение,std::chrono::time_point
- это шаблон класса, а не тип:
template<class Clock, class Duration = typename Clock::duration>
class time_point;
Я выбрал system_clock
, поскольку это часы, аналогичные типу C time_t
. Он отсчитывает время с 1970-01-01 00:00:00 UTC, за исключением более высокой точности, чем обычно time_t
.
И system_clock::time_point
- псевдоним типа для time_point<system_clock>
(вы могли быиспользуйте либо).
Видеоруководство по <chrono>
см. https://www.youtube.com/watch?v=P32hvk8b13M