问题 预处理器宏来获取当前类的名称? [重复]


这个问题在这里已有答案:


11110
2018-03-25 00:03


起源

做什么的?可能还有其他方式。 - GManNickG


答案:


看着 C ++中是否有__CLASS__宏?


8
2018-03-25 00:06



需要说明的是,这不是标准的C ++,而是特定于编译器的扩展。 - GManNickG
我觉得 typedid(class).name() 是标准C ++生成编译器特定的输出。 cppreference.com/wiki/language/typeid - Adam Trhon
解析C ++代码的预处理器?谁做到了? - Hans Passant
值得注意的是,typeid(class).name()返回的名称不必是人类可读的。 - ltc
是的......但你的回答是 __CLASS__。也许我误读了那个支持使用的东西 __CLASS__ 而不是作为问题的链接。但是,如果是后者,这不是答案。这应该是评论/重复投票。 - GManNickG


不,没有这样的宏 - 抱歉。

但尽管如此: __FUNCTION__ (要么 __PRETTY_FUNCTION__ 使用gcc)应该给你封闭类的名称 - 你只需要提取它。


2
2018-03-25 00:04