使用c++不定参数模版实现简易打印
#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