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

相關文章
相關標籤/搜索