• 刘文同
    2021-05-29
    基本的值语义定义在 std 中,而 Deref 也定义在 std 中,所以根据孤儿原则, 我们是没办法给 u32, [u32; 3] 这种类型实现 Deref 的。 会报错: error[E0117]: only traits defined in the current crate can be implemented for arbitrary types impl doesn't use only types from inside the current crate
    
    2
  • 神 一生有你
    2020-10-18
    我记得Box内部应该是编译器特殊处理了,&**self就和&*self.0效果是一样的,&**self,*self解引用box,再*就是box包裹的T(这应该是编译器特殊处理的),然后再&就是包裹的引用
    共 1 条评论
    1
  • 神 一生有你
    2020-10-18
    let c=Box::from(5); *c // 等价于 *(c.deref()) 问下,Box::new和from包裹一个变量,new是在堆上分配,但from好像不是?
    共 1 条评论
    