问题标签 [c++-attributes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 在基于范围的 for 循环中在 init 语句上使用属性是否合法?
例子:
这似乎在 GCC 和 Clang 上运行良好,但无法使用 MSVC 编译:https ://godbolt.org/z/reP5vPM6h并出现错误:
但由于某种原因,这在 MSVC 上编译得很好,尽管我认为它不合法:
c++ - 如何在不修改 Clang 代码的情况下将自定义 C++ 属性与 Clang libTooling 一起使用?
我正在编写某种工具来提取 C++ 代码的接口定义。在编写过程中,我决定将解析器限制为仅处理显式标记为要处理的代码,并且我认为 C++ 属性是最好的方法。我更愿意为[[export]]
我想要导出的实体添加例如注释,但我意识到如果没有在 Clang 代码本身中注册自定义属性(我的意思是将属性添加到tools/clang/include/clang/Basic/Attr.td
),libTooling 无法查看自定义属性。
因此,我的问题是:有没有办法在不修改该文件的情况下注册属性(例如通过以编程方式注册属性或编写自己的Attr.td
文件)?
UPD:我正在使用 ASTMatchers 库进行源代码分析,因此基于访问者的方法可能不适合我。