#pragma once #include #include struct Timer { using Clock = std::chrono::high_resolution_clock; using Duration = std::chrono::duration; std::chrono::time_point start, end; Duration duration; explicit Timer ( Duration& target ) : target_ ( target ), start_( Clock::now() ) {} ~Timer () noexcept { target_ = Clock::now() - start_; } private: Duration& target_; Clock::time_point start_; };