注意:固有功能将会永远是一个不稳定的接口,推荐使用稳定的 libcore 接口而不是直接使用编译器自带的功能。
可以像 FFI 函数那样导入它们,使用特殊的rust-intrinsic
ABI。例如,如果在一个独立的上下文,但是想要能在类型间transmute
,并想进行高效的指针计算,你可以声明函数:
#![feature(intrinsics)]
# fn main() {}
extern "rust-intrinsic" {
fn transmute<T, U>(x: T) -> U;
fn offset<T>(dst: *const T, offset: isize) -> *const T;
}
跟其它 FFI 函数一样,它们总是unsafe
的。