#pragma once #include namespace utils { // This class is threadsafe. class Timer { public: Timer() : start_time_(std::chrono::steady_clock::now()) {} template > TDuration Elapsed() const { return std::chrono::duration_cast( std::chrono::steady_clock::now() - start_time_); } private: std::chrono::steady_clock::time_point start_time_; }; } // namespace utils