前奏中是否包括Rust std库中的所有宏?

ruo*_*ola 0 macros rust

前奏中是否包括Rust的std库中的所有宏?那么,整个列表中的每个宏在没有任何use语句且不使用std::前缀的情况下是否始终可用?

如果所有这些都包括在前奏中;是否可以保证始终是这种情况,还是可以在理论上将宏添加到std库中并且只能使用进行访问std::foo::macro_name!()

mca*_*ton 6

标准宏实际上不在序幕中

rustc 自动在您的箱子上添加以下代码:

#![feature(prelude_import)]
#![no_std]
#[prelude_import]
use ::std::prelude::v1::*;
#[macro_use]
extern crate std as std;
Run Code Online (Sandbox Code Playgroud)

因此#[macro_use] extern crate std as std;#[macro_export]无需使用即可使用标准库中标有的所有宏std::