14 using duration_ms = std::chrono::duration<double, std::milli>;
15 using duration_us = std::chrono::duration<double, std::micro>;
18 using clock =
typename std::conditional<std::chrono::high_resolution_clock::is_steady,
19 std::chrono::high_resolution_clock,
20 std::chrono::steady_clock>::type;
31 template<
typename F,
typename... Args>
34 auto start = mc_rtc::clock::now();
35 func(std::forward<Args>(args)...);
36 return std::chrono::duration_cast<mc_rtc::duration_ms>(mc_rtc::clock::now() - start);
40 std::chrono::time_point<mc_rtc::clock> end)
double duration_ms_count(std::chrono::time_point< mc_rtc::clock > start, std::chrono::time_point< mc_rtc::clock > end)
Definition: clock.h:39
typename std::conditional< std::chrono::high_resolution_clock::is_steady, std::chrono::high_resolution_clock, std::chrono::steady_clock >::type clock
Definition: clock.h:20
double elapsed_ms_count(std::chrono::time_point< mc_rtc::clock > start)
Definition: clock.h:50
mc_rtc::duration_ms elapsed_ms(std::chrono::time_point< mc_rtc::clock > start)
Definition: clock.h:45
std::chrono::duration< double, std::micro > duration_us
Definition: clock.h:15
std::chrono::duration< double, std::milli > duration_ms
Definition: clock.h:14