#pragma once #include #include namespace vcpkg { class ElapsedTime { public: static ElapsedTime create_started(); constexpr ElapsedTime() : m_start_tick() {} template TimeUnit elapsed() const { return std::chrono::duration_cast(std::chrono::high_resolution_clock::now() - this->m_start_tick); } double microseconds() const { return elapsed>().count(); } std::string to_string() const; private: std::chrono::high_resolution_clock::time_point m_start_tick; }; }