#pragma once #include namespace alpaqa::util { template struct Timed { Timed(T &time) : time(time) { time -= std::chrono::steady_clock::now().time_since_epoch(); } ~Timed() { time += std::chrono::steady_clock::now().time_since_epoch(); } Timed(const Timed &) = delete; Timed(Timed &&) = delete; Timed &operator=(const Timed &) = delete; Timed &operator=(Timed &&) = delete; T &time; }; #ifndef DOXYGEN template Timed(T &) -> Timed; #endif } // namespace alpaqa::util