> The periodicity does have to be a known compile-time ratio expressible as a fraction of seconds
Right, that's the problem I'm describing.
> or just pick one (or several) std::chrono base durations such as standardizing on nanoseconds, and then just count floating-point ticks.
None of this really fits well -- the idea is to count in integer ticks (invariant cycles), without doing expensive division or floating point math. It's like steady clock, but in ticks instead of nanos.
But on any modern CPU, clock speed won't be constant. It's not compile time constant, nor a runtime constant. Its variable over time. You'd have to record the clock speed over time and the ticks, so why not just record actual time?