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 回答