使用c++不定參數模版實現簡易打印ios
#pragma once #include <iostream> class DebugLogger { public: DebugLogger(); template <typename Arg, typename... Args> DebugLogger(Arg, Args...); }; DebugLogger::DebugLogger() { std::cout << std::endl; } template <typename Arg, typename... Args> DebugLogger::DebugLogger(Arg arg, Args... args) { std::cout << arg << " "; DebugLogger(args...); } #ifndef LazUtil_log #define LazUtil_log(rank, ...) DebugLogger(rank, __VA_ARGS__, __FUNCTION__, __FILE__, __LINE__); #endif #ifndef LazUtil_logD #define LazUtil_logD(...) LazUtil_log("[Laz-D]", __VA_ARGS__); #endif #ifndef LazUtil_logI #define LazUtil_logI(...) LazUtil_log("[Laz-I]", __VA_ARGS__); #endif #ifndef LazUtil_logE #define LazUtil_logE(...) LazUtil_log("[Laz-E]", __VA_ARGS__); #endif #ifndef LazUtil_logF #define LazUtil_logF(...) LazUtil_log("[Laz-F]", __VA_ARGS__); #endif