我有一些代码可以做到这一点:
const MY_CRAZY_CONSTANT: u32 = 1 << (u32::BITS - 1);
我尝试使用 Rust nightly (2016-03-29) 编译它,但失败并显示以下消息:
error: no associated item named `BITS` found for type `u32` in the current scope
我看到它已被弃用,并且我看到有一个 RFC (Sizeof、alignof、offsetof、typeof #591 https://github.com/rust-lang/rfcs/pull/591)谈论添加 sizeof 关键字等,但这已关闭:推迟。
我想弃用已在夜间频道中实现,因为它已被删除,并且我知道我可以执行以下操作,但要做到这一点,我需要删除我的 const,而我宁愿不这样做。
mem::size_of::<u32>() * 8
那么,现在我是否必须删除 const 并重新构造我的代码,或者是否有其他方法来实现我最初的目标?
一般的答案是定义你自己的常量:
const U32_BITS: usize = 32;
对于特殊情况usize::BITS
or isize::BITS
,您将需要使用条件编译。
#[cfg(target_pointer_width = "32")]
const USIZE_BITS: usize = 32;
#[cfg(target_pointer_width = "64")]
const USIZE_BITS: usize = 64;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)