rust - 所有 Rust 属性都是宏吗?

标签 rust rust-macros

Rust 中的所有属性都是作为宏实现的吗?或者某些 native 属性是由编译器/语言专门创建的并且不使用宏机制?

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

最佳答案

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

除了查看the list of builtin macro attributes之外,我不知道识别此类属性的方法。看看他们是否在那里。

关于rust - 所有 Rust 属性都是宏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73517374/

相关文章:

rust 宏 : Calling function dependent on expression

rust - 在 Rust 的宏中创建闭包环境

rust - 我必须将 `u8` 转换为什么才能将其用作向量中的索引?

rust - 如何在 Rust 中过滤特定子特征的 RCed 特征对象向量?

rust - 如果通过原子操作进行门控,非原子写入是否可以安全读取?

rust - 通过 Rust 宏自定义文字?

rust - 如何导出同名的函数和宏?

rust - 如何处理或测试某个类型是否是 Rust 宏中的选项?

使用rust 错误 "cannot determine a type for this expression"

reference - 如何避免在 Rust 中为可变和不可变引用编写重复的访问器函数?