28 typedef typename clock::duration duration;
29 typedef typename clock::time_point time_point;
58 [[nodiscard]] duration
elapsed()
const;
60 [[nodiscard]] std::chrono::duration<double>::rep
seconds()
const;
67 [[nodiscard]] time_point
now()
const {
return clock::now(); }
76using chosen_steady_clock = std::conditional<std::chrono::high_resolution_clock::is_steady,
77 std::chrono::high_resolution_clock, std::chrono::steady_clock>::type;
79extern template class TimerBase<chosen_steady_clock>;
84 typedef std::micro period;
85 typedef std::chrono::duration<rep, period> duration;
86 typedef std::chrono::time_point<user_clock> time_point;
87 const bool is_steady =
false;
88 static time_point now();
130 const bool enabled_{
false};
time_point now() const
Definition timer.h:67
bool is_running() const
Definition timer.cpp:48
duration elapsed_
Elapsed time so far. This doesn't include the current fragment if it is running.
Definition timer.h:72
void pause()
Definition timer.cpp:32
bool running_
Whether the timer is running or not.
Definition timer.h:70
time_point last_start_
Last time_point when the timer is started or resumed.
Definition timer.h:71
void start()
Definition timer.cpp:24
std::chrono::duration< double >::rep seconds() const
Definition timer.cpp:59
duration elapsed() const
Definition timer.cpp:53
void resume()
Definition timer.cpp:40
TimerBase()
Definition timer.cpp:21
Timer *const timer_
The timer to be guarded.
Definition timer.h:129