#ifndef TIMER_H #define TIMER_H #include #include #include namespace sls{ class Timer { using clock = std::chrono::high_resolution_clock; using time_point = std::chrono::time_point; public: Timer(std::string name = "0") : t0(clock::now()), name_(name) { } double elapsed_ms() { return std::chrono::duration(clock::now() - t0).count(); } double elapsed_s() { return std::chrono::duration(clock::now() - t0).count(); } void print_elapsed() { std::cout << "Timer \"" << name_ << "\": Elapsed time " << elapsed_ms() << " ms\n"; } void restart() { t0 = clock::now(); } private: time_point t0; std::string name_; }; }; //namespace sls #endif // TIMER_H