4

次の例では、その部分を削除したいのですstd::wstring(std::widen(...))が、「#」マクロは char 文字列リテラルしか返しません。wchar に対応する方法はありますか?

#define FOO_MACRO(className)\
struct className##Factory : public OtherClass {\
// does some stuff here\
} className##Factory;\
someMap->add(std::wstring(std::widen(#className), className##Factory)))

wchar を使用して同じことを行うにはどうすればよいですか?

4

1 に答える 1

8

文字列リテラルにプレフィックスを使用Lして、wchar 文字列リテラルを作成します。

#define CAT(A, B)   A##B
#define WSTRING(A)  CAT(L, #A)
于 2013-02-19T21:38:37.777 に答える