Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- enum LogType {
- INFO, WARNING, ERROR
- };
- template<typename T>
- void coutMany(T t) {
- std::cout << t << " " << std::endl;
- }
- template<typename T, typename... Args>
- void coutMany(T t, Args... args) { // recursive variadic function
- std::cout << t << " " << std::flush;
- coutMany(args...);
- }
- template<typename T>
- void cerrMany(T t) {
- std::cerr << t << " " << std::endl;
- }
- template<typename T, typename... Args>
- void cerrMany(T t, Args... args) { // recursive variadic function
- std::cerr << t << " " << std::flush;
- cerrMany(args...);
- }
- template<typename T, typename... Args>
- void log(int type, T t, Args... args) {
- switch (type) {
- case INFO:
- std::cout << "\033[;32mINFO:\033[0m ";
- coutMany(t, args...);
- break;
- case WARNING:
- std::cout << "\033[1;33mWARNING:\033[0m ";
- coutMany(t, args...);
- break;
- case ERROR:
- std::cerr << "\033[1;31mERROR:\033[0m ";
- cerrMany(t, args...);
- break;
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement