#pragma once #include #include #include "infra/sim.h" namespace infra { struct stat : public sim { std::string name; std::uint64_t numerator = 0; std::uint64_t denominator = 0; stat(std::string name) : name(std::move(name)) { } ~stat() { fmt::print("# {} {}\n", name, (double)numerator/(double)denominator); } void unclock() { ++denominator; } stat & operator++() { ++numerator; return *this; } stat & operator++(int) { return operator++(); } }; }