#include #include #include int main() { using namespace std::chrono; const milliseconds budget(1500); const seconds whole = duration_cast(budget); const milliseconds remainder = budget - whole; assert(whole.count() == 1); assert(remainder.count() == 500); assert(duration_cast(milliseconds(-1500)).count() == -1); const seconds wrong(budget.count()); assert(wrong != budget); const duration precise = budget; assert(precise.count() == 1.5); using Tick = duration>; assert(duration_cast(Tick(3)).count() == 750); assert(whole + remainder == budget); }