Rust中的所有属性是否都实现为宏?或者一些本机属性是由编译器/语言专门创建的,不使用宏机制?

如果有属性不是通过宏创建的,我如何识别它们?

推荐答案

有许多属性不是宏,由编译器专门处理.例如:#[cfg](尽管这可以被认为是一个宏,即使没有实现为一个宏)、#[repr]#[doc]#[allow(...)]/#[warn(...)]/#[deny(...)]/#[forbid(...)],以及更多.

除了查看the list of builtin macro attributes并查看它们是否存在之外,我不知道有什么方法可以识别这些属性.

Rust相关问答推荐

有没有方法处理rust中嵌套的ok_or()?

通用池类型xsx

如果成员都实现特征,是否在多态集合上实现部分重叠的特征?

限制未使用的泛型导致编译错误

有没有办法避免在While循环中多次borrow `*分支`

在使用#[NO_STD]时,如何在Rust中收到紧急消息?

如何使用盒装枚举进行模式匹配?

函数内模块的父作用域的访问类型

S在Cargo.toml中添加工作空间开发依赖关系的正确方法是什么?

创建Rust中元对象协议的动态对象 Select /重新分配机制

习语选项<;T>;到选项<;U>;当T->;U用From定义

Rust移动/复制涉及实际复制时进行检测

为什么rustc会自动降级其版本?

了解Rust';s特征对象和不同函数签名中的生存期注释

用于实现获取 struct 体 id 的特征规范

如何限制 GtkColumnView 行数

如何将 Rust 中的树状 struct 展平为 Vec<&mut ...>?

返回引用字符串的future

从 Cranelift 发出 ASM

相互调用的递归异步函数:检测到循环