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

c++ easy way to convert macro variable to wchar string literal

本文关键字:转换 wchar 字符串 文字 变量 简单 方法 c++      更新时间:2023-10-16

在下面的例子中,我想删除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)