Function core::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。)