c++マクロvalのunicodeでの使用を浅く分析する
379 ワード
#define CHECK(condition) cout<
上のマクロは、CHECK(myfunc());場合、myfuncがfalseを返すと、check failed:myfunc()が出力されます.
マクロでは、#conditionはパラメータを文字列に変換するもので、logを印刷する際に関数名などを簡単に印刷できます.
これはみんな知っているかもしれませんが、小児科ですが、unicodeの下で使うと、文字化けしてしまう可能性があります.
解決策は、#conditionをL##conditonに置き換えることです.
上のマクロは、CHECK(myfunc());場合、myfuncがfalseを返すと、check failed:myfunc()が出力されます.
マクロでは、#conditionはパラメータを文字列に変換するもので、logを印刷する際に関数名などを簡単に印刷できます.
これはみんな知っているかもしれませんが、小児科ですが、unicodeの下で使うと、文字化けしてしまう可能性があります.
解決策は、#conditionをL##conditonに置き換えることです.
#define CHECK(condition) cout<