Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.63 KB | None | 0 0
  1. #include <chrono>
  2. #include <iostream>
  3. #include <string>
  4.  
  5. using namespace std::chrono;
  6.  
  7. class LogDuration {
  8. public:
  9. explicit LogDuration(const string& msg = "")
  10. : message(msg + ": ")
  11. , start(steady_clock::now())
  12. {
  13. }
  14.  
  15. ~LogDuration() {
  16. auto finish = steady_clock::now();
  17. auto dur = finish - start;
  18. cerr << message
  19. << duration_cast<microseconds>(dur).count()
  20. << " microseconds" << endl;
  21. }
  22. private:
  23. string message;
  24. steady_clock::time_point start;
  25. };
  26.  
  27. #define UNIQ_ID_IMPL(lineno) _a_local_var_##lineno
  28. #define UNIQ_ID(lineno) UNIQ_ID_IMPL(lineno)
  29.  
  30. #define LOG_DURATION(message) \
  31. LogDuration UNIQ_ID(__LINE__){message};
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement