fork(1) download
  1. #include <chrono>
  2. #include <ctime>
  3. #include <cstdint>
  4. struct HighResClock
  5. {
  6. typedef long long rep;
  7. typedef std::nano period;
  8. typedef std::chrono::duration<rep, period> duration;
  9. typedef std::chrono::time_point<HighResClock> time_point;
  10. static const bool is_steady = true;
  11. static time_point now();
  12. };
  13.  
  14. class Timer
  15. {
  16. using SysClock = std::chrono::system_clock;
  17. using Time = Timer::SysClock::time_point;
  18. using Duration = Timer::SysClock::duration;
  19. Time start_;
  20. public:
  21. Timer();
  22. void Restart();
  23.  
  24. Duration TimeElapsed() const;
  25. int64_t TimeElapsed_s() const;
  26. int64_t TimeElapsed_ms() const;
  27. int64_t TimeElapsed_us() const;
  28. int64_t TimeElapsed_ns() const;
  29.  
  30. template<class unit>
  31. int64_t TimeElapsed_T() const
  32. {
  33. return std::chrono::duration_cast<unit>(TimeElapsed()).count();
  34. }
  35. };
  36.  
  37.  
  38. class HRTimer
  39. {
  40. using SysClock = HighResClock;
  41. using Time = HRTimer::SysClock::time_point;
  42. using Duration = HRTimer::SysClock::duration;
  43. Time start_;
  44. public:
  45. HRTimer();
  46. void Restart();
  47.  
  48. Duration TimeElapsed() const;
  49. int64_t TimeElapsed_s() const;
  50. int64_t TimeElapsed_ms() const;
  51. int64_t TimeElapsed_us() const;
  52. int64_t TimeElapsed_ns() const;
  53.  
  54. template<class unit>
  55. int64_t TimeElapsed_T() const
  56. {
  57. return std::chrono::duration_cast<unit>(TimeElapsed()).count();
  58. }
  59. };
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
/usr/lib/gcc/i486-linux-gnu/4.8/../../../i386-linux-gnu/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: error: ld returned 1 exit status
stdout
Standard output is empty