Rust compile_error宏的用法和示例
compile_error
是Rust中的一个宏,它用于在编译时生成一个错误信息;这在编写宏或者进行一些静态检查时非常有用;
compile_error 用法
compile_error
宏只能用于编译时,无法在运行时生成错误,因此,传递给它的错误消息必须是编译时可确定的常量表达式;它通常用于编写宏或配合cfg宏使用:
用法一
#[cfg(target_os = "windows")]
compile_error!("doesn't compile on windows");
fn main(){
}
当在windows系统上编译这段代码时,将产生编译错误:
用法二
macro_rules! give_me_foo_or_bar {
(foo) => {};
(bar) => {};
($x:ident) => {
compile_error!("This macro only accepts `foo` or `bar`");
}
}
fn main() {
//give_me_foo_or_bar!(foo);
give_me_foo_or_bar!(neither);
}
当标识符不是foo
或bar
时,将产生编译错误;