Advertisement
Guest User

Untitled

a guest
Sep 19th, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. #include <iostream>
  2.  
  3.  
  4. enum LogType {
  5. INFO, WARNING, ERROR
  6. };
  7.  
  8. template<typename T>
  9. void coutMany(T t) {
  10. std::cout << t << " " << std::endl;
  11. }
  12.  
  13. template<typename T, typename... Args>
  14. void coutMany(T t, Args... args) { // recursive variadic function
  15. std::cout << t << " " << std::flush;
  16. coutMany(args...);
  17. }
  18.  
  19. template<typename T>
  20. void cerrMany(T t) {
  21. std::cerr << t << " " << std::endl;
  22. }
  23.  
  24. template<typename T, typename... Args>
  25. void cerrMany(T t, Args... args) { // recursive variadic function
  26. std::cerr << t << " " << std::flush;
  27. cerrMany(args...);
  28. }
  29.  
  30. template<typename T, typename... Args>
  31. void log(int type, T t, Args... args) {
  32. switch (type) {
  33. case INFO:
  34. std::cout << "\033[;32mINFO:\033[0m ";
  35. coutMany(t, args...);
  36. break;
  37. case WARNING:
  38. std::cout << "\033[1;33mWARNING:\033[0m ";
  39. coutMany(t, args...);
  40. break;
  41. case ERROR:
  42. std::cerr << "\033[1;31mERROR:\033[0m ";
  43. cerrMany(t, args...);
  44. break;
  45. };
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement