// LogHandler.cpp : Diese Datei enthält die Funktion "main". Hier beginnt und endet die Ausführung des Programms. // #include #include #include #include class Console { protected: template void log_argument(T t) { std::cout << t << " "; } public: template void log(Args&&... args) { int dummy[] = { 0, ((void)log_argument(std::forward(args)),0)... }; std::cout << std::endl; } template void warn(Args&&... args) { std::cout << "WARNING: "; int dummy[] = { 0, ((void)log_argument(std::forward(args)),0)... }; std::cout << std::endl; } template void error(Args&&... args) { std::cout << "ERROR: "; int dummy[] = { 0, ((void)log_argument(std::forward(args)),0)... }; std::cout << std::endl; } }; Console console; class myClass { public: uint8_t myAge = 12; enum { MALE, FEMALE, DIVERS } sex = MALE; void test() { console.log(this, "bunch", "of", "arguments"); console.warn("or some numbers:", 1, 2, 3); } void run() { console.warn("or some numbers:", 1, 2, 3); } }; int main() { myClass Class; Class.test(); Class.run(); return 1; }