有人可以将其翻译成对我有意义的东西:
将指针转换为原始指针(不带标记)。
指针和原始指针有什么区别?
Stack Overflow原始指针标签既没有说“智能”也没有说“共享”,这又是一个谜。
Crossbeam 的
Shared::as_raw
“标签”到底是什么?
crossbeam_epoch::Shared
是一个智能指针。也就是说,一个指针加上额外的东西。在 C++ 或 Rust 中,智能指针是用于指针包装器的术语,它添加了以下任何内容:
在这种情况下,原始指针只是包装的指针,没有所有额外的东西。
crossbeam_epoch::Shared
适合(除其他外)上面的“在未使用的位中打包额外数据”类别。现代计算机中的大多数数据都是对齐的,也就是说,地址是 2 的某个幂的倍数。这意味着地址的所有低位始终为 0。可以利用这一事实在指针中存储一些额外的信息位。
这个额外的数据被这个特定的库称为标记,但是该术语不像原始指针那样常见。