【发布时间】:2013-12-30 23:22:38
【问题描述】:
我想对我的疯狂宏进行一些调试,但没有办法这样做,因为宏生成代码,而不是字符串。我必须更改宏以发出字符串,以便我的程序打印出它本来会产生的代码。
C++11 中的新功能是R"delim("Raw Strings")delim",我希望有一些方法可以在其中一个内插代码宏,以将该代码转换为字符串文字。
【问题讨论】:
-
我不确定我是否理解。你能举一个你想做的例子吗?比如,“这是一个宏,这就是我想用它做的事情。”
-
你不能用macro stringification吗?
-
你们低估了宏的疯狂程度
-
@StevenLu - 如果没有英勇的努力就无法调试宏,那么您需要消除它们。一次编写代码很糟糕!
-
嗯,它是为超高级(真正的一次编写)调试工具添加通用反射功能的语言。如果不使用宏(3 级深度并生成模板),它字面意思是不可能实现的功能。