c++ 宏 #val 在unicode下的使用。

#define CHECK(condition) cout<<check failed:<<#condition<<endl;函数

上面这句宏,当你 CHECK(myfunc()); 时,假设myfunc返回false,会输出:check failed:myfunc() spa

在宏中,#condition 是把参数转换为字符串,这在打印log时,能够很方便的打印出函数名称等等code

这个你们可能都知道了,过小儿科了,可是,当你在unicode下用的时候,极可能会出现乱码unicode

解决的办法是 #condition 替换为 L## #conditon字符串

#define CHECK(condition) cout<<check failed:<<L## #condition<<endl;it

相关文章
相关标签/搜索