【问题标题】:Additional macro support in clang?铿锵的额外宏支持?
【发布时间】:2011-01-24 20:13:21
【问题描述】:

因为 LLVM/cLang 设计得特别好。

这似乎是增强 C/C++ 宏/预处理器系统的绝佳机会。

有谁知道

  1. 由 Clang 添加的其他宏/预处理器功能或
  2. 让宏系统更强大的辅助项目(如图灵完备)

注意:我问的是宏。不是 C++ 模板。我希望这个线程是特定于宏/预处理器的。

【问题讨论】:

    标签: macros clang llvm c-preprocessor


    【解决方案1】:

    LLVM/clang 设计得特别好。 clang 预处理器特别好:它跟踪宏扩展等。我怀疑它没有被扩展的原因是 1. 扩展的预处理器是非标准的,2. 没有人做过。随意扩展它。正如他们在 LLVM IRC 上所说:“欢迎使用补丁”,尽管我怀疑非常非标准的预处理器扩展可能不是。

    关于将预处理器发挥到极致的示例,请查看 PL/1。 ;-)

    【讨论】:

      【解决方案2】:

      为什么不直接使用 M4 作为预处理器?

      【讨论】:

      • 这听起来很有趣,但谷歌搜索我找不到如何告诉 clang 使用 m4 作为预处理器我该怎么做?特别是,假设我有一个包含一个 .hpp 文件的 .hpp 文件;我如何告诉 m4 也预处理包含的文件?
      • 您必须先使用脚本对所有文件(包括头文件)进行 M4 预处理,然后再将它们提供给实际的 C++ 编译器。好消息是您没有发明强大的宏系统,因为 M4 已经具备图灵功能。如果您坚持将宏定义 .hpp 文件中,那么您可以在 C++ cmets 中定义 M4 宏,对代码进行预扫描以提取和收集 M4 宏,然后做 M4 应用程序。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-25
      • 1970-01-01
      • 2016-10-24
      相关资源
      最近更新 更多