块在这我的工作代码已经宏字符串化文本的在C++ 11
#define STRINGIFY(...) #__VA_ARGS__
定义。
这确实有缺点,它会忽略换行符。
因此,我想定义一个使用新格式R"literal(...)literal"
格式的宏。
鉴于宏观形式已经存在,我想保留使用STRINGIFY
宏观
但是考虑到有参与报价,你会如何定义STRINGIFY
使用新的字符串文字格式?
反正也有#ifdef
s在STRINGIFY
宏吗?
编辑我希望有一个定义宏将在C++ 11
EDIT2转化为R"literal(...)literal"
我已经能够获得最接近的是:
#define STRINGIFY1(a) #a
#define STRINGIFY(str) R STRINGIFY1(lit(str)lit)
这把所有正确的东西放在正确的地方,将块压缩成一行。我开始认为这里不能使用宏。
目前尚不清楚你想要做什么。你能给出一个输入和期望输出的例子吗? –
你不能(#总是输出旧的文字),玩得开心。 –
@ n-m说,不能真正告诉你目前想要达到什么目标,所以样本输入和期望的输出将会很方便:)也想知道是否有一个特定的原因用宏编码?因为您无法像调试函数那样轻松地调试或控制它们。 – GMasucci