Function std::intrinsics::raw_eq

const: unstable · source ·
pub unsafe extern "rust-intrinsic" fn raw_eq<T>(a: &T, b: &T) -> bool
🔬This is a nightly-only experimental API. (core_intrinsics)
Expand description

确定两个值的原始字节是否相等。

这对于数组来说特别方便,因为它允许只比较 i96,而不是强制 alloca 用于 [6 x i16] 之类的事情。

在某些后端决定的之上,这将发出 memcmp 调用,就像对相等阈值所做的那样,而不是导致大量代码大小。

由于这是通过比较底层字节来工作的,因此实际的 T 并不是特别重要。 它将用于其大小和对齐方式,但任何有效性限制都将被忽略,而不是强制执行。

Safety

如果 *a*b 中的任何 bytes 未初始化或带有指针值,则调用 this 是 UB。 请注意,这是一个比完全初始化 values 更严格的标准:如果 T 有填充,它是 UB 到调用这个内部函数。

(该实现允许在比较结果上进行分支,如果它们的任何输入为 undef,则为 UB。)