有人可以将this转换成对我有意义的东西:
Converts the pointer to a raw pointer (without the tag).
堆栈溢出raw-pointer标签既没有说“智能”也没有说“共享”,这再次是令人迷惑的。
Shared::as_raw
的“标签”到底是什么?最佳答案
crossbeam_epoch::Shared
是一个智能指针。也就是说,一个指针加上额外的东西。在C++或Rust中,智能指针是用于指针包装的术语,它会添加以下任何内容:在这种情况下,原始指针只是包装的指针,没有所有额外的东西。
crossbeam_epoch::Shared
适合(其中包括)上面的“将多余的数据打包在未使用的位中”类别。现代计算机中的大多数数据都是对齐的,即地址是2的幂的倍数。这意味着地址的所有低位始终为0。人们可以利用这一事实在指针中存储一些额外的信息位。这个特定的库将这些额外的数据称为tag,但是该术语并不像原始指针那样普遍。
关于pointers - crossbeam_epoch::Shared::as_raw由 “Converts the pointer to a raw pointer (without the tag)”表示什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63549744/