Скажите, ну вот какой пиииииии в комитете не догадался сделать так, чтобы часы можно было вызывать через виртуальный метод?!?
Ну типа для простейшего случая:
struct some_class {
std::chrono::base_clock *clock_ = &std::chrono::system_clock;
std::string do_something() {
return make_iso_timestamp(*clock_);
}
};
// In tests
some_class t;
t.clock = fixed_clock(2020, 12, 23, 11, 22);
ASSERT_EQ("2020-12-23T11:22", t.do_something());
Я уже молчу об отдельном квесте: "напечатай мне время в ISO с наносекундами". Почему-то в комитете не подумали, что это кому-то может быть нужно.
Дубинкой бы их всех там надо пару раз по голове стукнуть.