#include #include #include #include int main() { timer::timer t; const auto kShowTime = [&t]() { std::fprintf(stderr, "usec=%f msec=%f sec=%f\n", t.as_usec(), t.as_msec(), t.as_sec()); }; { puts("Sleep 100ms"); const timer::scoped_timer kS{t}; usleep(100 * 1000); } assert(100000 < t.as_usec() && t.as_usec() < 101000); assert(100 < t.as_msec() && t.as_msec() < 101); assert(0.100 < t.as_sec() && t.as_sec() < 0.101); kShowTime(); { puts("Sleep 500ms"); const timer::scoped_timer kS{t}; usleep(500 * 1000); } assert(600000 < t.as_usec() && t.as_usec() < 601000); assert(600 < t.as_msec() && t.as_msec() < 601); assert(0.600 < t.as_sec() && t.as_sec() < 0.601); kShowTime(); t.reset(); { puts("Sleep 200ms"); timer::scoped_timer s{t}; usleep(200 * 1000); } assert(200000 < t.as_usec() && t.as_usec() < 201000); assert(200 < t.as_msec() && t.as_msec() < 201); assert(0.200 < t.as_sec() && t.as_sec() < 0.201); kShowTime(); return 0; }