я имею
auto now = std::chrono::high_resolution_clock::now();
и я хочу передать его функции, использующей общий тип для момента времени. Я не хочу указывать разрешение или тип используемых часов.
Я пытался использовать
void my_function(std::chrono::time_point time_point);
но без успеха. Поскольку, очевидно, std :: chrono :: time_point не является типом.
std::chrono::time_point
это шаблонный класс, который нуждается как минимум в clock
параметр шаблона.
Либо явно установить часы, как
void my_function(std::chrono::time_point<std::chrono::high_resolution_clock> time_point);
Или вы можете сделать свою функцию шаблоном:
template<typename Clock>
void my_function(std::chrono::time_point<Clock> time_point);
В последнем случае вам фактически не нужно указывать параметр шаблона при вызове функции, компилятор выяснит это для вас:
my_function(now);
Других решений пока нет …