我刚刚开始探索 GCC 插件 API 的世界,我正在尝试为以下示例扩展 GCC。
class Foo { ... };
Foo* f = __construct Foo(); // __construct is meant to be a new keyword
理想情况下,我希望插件简单地替换为类似的__construct
东西new (foo_class_info)
,所以你最终会得到
Foo* f = new (foo_class_info) Foo();
wherefoo_class_info
已通过PLUGIN_FINISH_TYPE
回调提供(即 __construct 不能在预处理器传递中替换)。
实现这一目标的正确/最简单方法是什么?我什至不介意将一些用户域模板代码与插件结合起来。
添加一个新的通行证是要走的路吗?如果是这样,我真的可以使用一些指针。