LogHandler.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. // LogHandler.cpp : Diese Datei enthält die Funktion "main". Hier beginnt und endet die Ausführung des Programms.
  2. //
  3. #include <iostream>
  4. #include <string>
  5. #include <iostream>
  6. #include <utility>
  7. class Console {
  8. protected:
  9. template <typename T>
  10. void log_argument(T t) {
  11. std::cout << t << " ";
  12. }
  13. public:
  14. template <typename... Args>
  15. void log(Args&&... args) {
  16. int dummy[] = { 0, ((void)log_argument(std::forward<Args>(args)),0)... };
  17. std::cout << std::endl;
  18. }
  19. template <typename... Args>
  20. void warn(Args&&... args) {
  21. std::cout << "WARNING: ";
  22. int dummy[] = { 0, ((void)log_argument(std::forward<Args>(args)),0)... };
  23. std::cout << std::endl;
  24. }
  25. template <typename... Args>
  26. void error(Args&&... args) {
  27. std::cout << "ERROR: ";
  28. int dummy[] = { 0, ((void)log_argument(std::forward<Args>(args)),0)... };
  29. std::cout << std::endl;
  30. }
  31. };
  32. Console console;
  33. class myClass {
  34. public:
  35. uint8_t myAge = 12;
  36. enum { MALE, FEMALE, DIVERS } sex = MALE;
  37. void test() {
  38. console.log(this, "bunch", "of", "arguments");
  39. console.warn("or some numbers:", 1, 2, 3);
  40. }
  41. void run() {
  42. console.warn("or some numbers:", 1, 2, 3);
  43. }
  44. };
  45. int main() {
  46. myClass Class;
  47. Class.test();
  48. Class.run();
  49. return 1;
  50. }