C++可变参数输出控制台
C++可变参数输出控制台
项目中经常用到输出调试,之前一直用C 实现,比较麻烦,需要指定数据类型。
C版本代码输出控制台
#define De_printf(str,args...) do{\
printf("%s:%s:%d] ", __FUNCTION__, __FILE__, __LINE__);\
printf(str,##args);\
printf("\r\n");\
}while(0)
后来百度了一下,发现C++模板可实现自定义输出,不需要关心数据类型
C++版本代码输出控制台
#include <iostream>
#include <time.h>
template <class T>
void printarg(T t)
{
std::cout << t << " " ;
}
template <class ...Args>
void COUT_CODE_RUN_INFO(Args... args)
{
std::cout \
<< " <File>: " << __FILE__ \
<< " <Function>: " << __FUNCTION__ \
<< " <Line>: " << __LINE__ \
<< " <Msg>: " ;
auto t = {(printarg(args), 0)...};
std::cout << std::endl;
}