Rust 具有非常惊人的功能,可以使用 proc_macros 在编译时生成代码,这些代码是纯 Rust 代码。C++ 中是否有类似的东西可以让我执行真正的 C++ 代码来生成代码而不是丑陋的定义。
目前,C++ 中还没有内置任何东西来实现与 Rust 过程宏等效的功能。
传统上,在 C++ 中,我见过两种不同的方法来实现类似的效果:
我认为 QT 的 MOC 在精神上更接近 Rust proc-macros,而 LLVM TableGen 更接近 Rust 的build.rs.
Herb Sutter 一直在提出元类,它将涵盖 proc 宏的一个子集:派生宏。
它不会涵盖使用 proc-macros 来转换函数代码,或以其他方式就地生成任意代码。
| 归档时间: |
|
| 查看次数: |
1669 次 |
| 最近记录: |