c++简单的方法将宏变量转换为wchar字符串文字



在下面的例子中,我想删除std::wstring(std::widen(...))部分,但"#"宏只返回一个字符串文本——有什么方法可以容纳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做同样的事情?

您在字符串文字上使用L前缀来生成wchar字符串文字:

#define CAT(A, B)   A##B
#define WSTRING(A)  CAT(L, #A)

最新更新