我是Rust的新手。我在Rust编译器中找到了这段代码。
#[must_use]
pub struct IeeeFloat<S> {
/// Absolute significand value (including the integer bit).
sig: [Limb; 1],
/// The signed unbiased exponent of the value.
exp: ExpInt,
/// What kind of floating point number this is.
category: Category,
/// Sign bit of the number.
sign: bool,
marker: PhantomData<S>,
}
然后他们做了。
impl<S> Copy for IeeeFloat<S> {}
impl<S> Clone for IeeeFloat<S> {
fn clone(&self) -> Self {
*self
}
}
我的问题是,这不就跟#[derive(Copy, Clone)]一样吗?为什么他们还要明确地写出impl Copy for IEEE?而且这个克隆实现不就跟标准库里的克隆一样吗?为什么要重新定义它呢?
链接 在此处
S: Clone
和复制所需的绑定S: Copy
。 - Bamontan