c++11 写日志

来源:互联网 发布:办公软件2003 编辑:程序博客网 时间:2024/05/16 13:58

c++日志库有很多.大家很喜欢sprintf_s,可以传入多参数。最近从国外论坛看到c++11 模板。原来c++11 写日志更爽。直接上代码:

template<\typename T> void format_stream(ostringstream& os, const T& v)
{ os << v; }

template<\typename T , typename …Args> void
format_stream(ostringstream& os,const T& v,const Args&…args ) { os
<< v; build_info(os,args…); }

template<\typename …Args> std::string build_string(const Args& …
args) { std::ostringstream os; format_stream(os,args…); return
os.str(); }

以后大家可以这么写日志了:
build_string(“日志”,1,1.0,false);
也支持class,当然前提你要std::ostream &operator<< (std::ostream& os, const ClassA& ca)

0 0