log實現

使用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
相關文章
相關標籤/搜索