lit*_*ude 5 unsafe stack-unwinding rust raw-pointer
在我们的文档中Unwindsafe:
类型,如
&mutT和&RefCell<T>是实例是不是开卷安全。一般的想法是,catch_unwind默认情况下,任何可以共享的可变状态都不是展开安全的。这是因为很容易在外部看到损坏的不变量,catch_unwind因为数据可以像往常一样简单地访问。
按照这个逻辑,在我看来*mut T不应该Unwindsafe。但事实证明确实如此。这是为什么?
*mut T作为一个原始指针,它没有任何不变性。
它可以为空,指向无效内存,它是Copy,并且您可以让其中两个指向内存中的同一区域。
无论如何,你无法对 a进行可变和*mut T安全的操作,所以它没有理由不这样做Unwindsafe。
| 归档时间: |
|
| 查看次数: |
152 次 |
| 最近记录: |