const 中 u32::BITS 的替代方案是什么?

2024-01-08

我有一些代码可以做到这一点:

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(使用前将#替换为@)

const 中 u32::BITS 的替代方案是什么? 的相关文章

随机推荐

  • 使用 EnableDelayedExpansion 时变量修饰符的正确语法

    我希望能够执行 p 来仅查看文件的路径 但在循环中使用它时我无法获得正确的语法 使用 EnableDelayedExpansion 这是我的代码 echo off set dir1 TMP opt set dir2 c opt set em
  • 自动更新.NET应用程序[重复]

    这个问题在这里已经有答案了 我们正在开发一个非常复杂的系统 该系统由多个 WCF 服务 ASP NET MVC 应用程序 管理工具 Windows 窗体应用程序 组成 其中一些将在多个服务器上运行实例 我们正在为这样的系统寻找一个好的自动更
  • 程序崩溃以及编码中算术运算的一些问题

    stackoverflow 社区大家好 我的代码有一些问题 我目前是一名学生 所以基本上我是一个初学者 使用欧几里得算法 下面显示的代码应该将两个数字相除 直到商达到 0 但它只是在商变为 0 之前的最后一个除法过程中停止 我不知道程序是否
  • 设置应用程序的supervisor环境变量

    我正在从supervisord 运行一个应用程序 我必须为其设置一个环境 大约有30个环境变量需要设置 我尝试过把一切都放在一件大事上 环境 线 这似乎不起作用 我还尝试了多个environment 行 但这似乎也不起作用 我还尝试了在 e
  • 递增数组值 - Arduino

    我正在尝试增加一些数组值 int counter 0 0 0 0 0 0 0 0 如果位置 0 的数字值达到 25 则位置 1 的值加 1 位置 0 重置为 0 依此类推 当索引位置 2 达到 25 时 位置 3 增加 1 并重置它的值 自
  • 在 if 语句中使用函数的返回值

    希望这里有一个简短的问题 可以在 if 语句中使用函数的返回值吗 IE function queryThis request return false if queryThis foo false doThat 我确信非常简单明了 但我遇到
  • 安装错误:INSTALL_FAILED_INSUFFICIENT_STORAGE?运行模拟器期间

    2011 07 22 16 33 02 Today 2011 07 22 16 33 02 Today Android Launch 2011 07 22 16 33 02 Today adb is running normally 201
  • 如何在 Ruby 中正确使用保护子句

    在此示例中使用保护子句的正确方法是什么 def require admin unless current user current user role admin flash error You are not an admin redir
  • Java 将 19 位 Unix 时间戳转换为可读日期

    我正在尝试转换 19 位 Unix 时间戳 例如1558439504711000000 1个半五亿 https en wikipedia org wiki Names of large numbers 转换为可读的日期 时间格式 我的时间戳
  • SqlAlchemy 与 Marshmallow 的关系

    我正在尝试返回 JSON 甚至返回一对多 sqlalchemy 查询的完整字符串 我此时正在使用 Marshmallow 来尝试执行此操作 但它不断返回不完整的数据 我有两个模型定义为 class UserModel db Model ta
  • 将 onclick 添加到子菜单?

    我的菜单有一个 onclick 函数 但我无法弄清楚子菜单的 ID 是什么 以便我可以告诉子菜单当用户单击它时要做什么 我使用下面的代码以编程方式创建了子菜单 因此 如果有人可以向我解释一下我如何知道子菜单中每个项目的 id 是什么 我将不
  • 在 Rails 3 中为 OmniAuth 创建命名路由

    观看 Ryan 精彩的 Railcast 后简单的 OmniAuth http railscasts com episodes 241 simple omniauth 我已经设法在我的应用程序中实现身份验证 一切工作正常 但在我看来 我的链
  • 如何以编程方式关闭 UITextView 中的自动更正弹出窗口?

    我正在自己做一些自定义自动完成的事情insertText 但是如果有可见的自动更正建议 视图就会进入奇怪的状态 如果我使用 textView unmarkText 它会忽略自动更正弹出窗口 但它接受自动更正 这很糟糕 有什么方法可以以编程方
  • 最佳 JDBC 数据源 bean 类

    我看到有些人使用org apache commons dbcp BasicDataSource而其他配置有com mchange v2 c3p0 ComboPooledDataSource Spring有它自己的 org springfra
  • 使用字典中的值替换列中的值

    import pandas as pd df pd DataFrame Data Hey this is 123456 Jonny B Good This is Jonny B Good at 511 233 1137 Wow that i
  • Google Play 服务已过时。需要 7571000 但找到 6774470

    我正在尝试将 google play API 添加到我的 Android 游戏中 并且按照他们网站上的说明进行操作 我在模拟器运行时遇到这个错误 试图解决它 在我的手机上 应用程序崩溃了 在清单中
  • 为什么我的异步函数返回空数组?

    我试图通过将用户的匹配项推入一个数组并返回该数组来获取用户的匹配项 以便我的路由器可以将数据发送到前端 但我的异步函数有一个问题 我只有一个空数组 我尝试设置一些断点 我注意到我的路由器在我的服务将数据推送到数组之前发送数据 这是我的路由器
  • Django 1.4 在开发服务器上提供 MEDIA_URL 和 STATIC_URL 文件

    刚刚升级到 Django 1 4 并且在开发服务器上新的 改进 的静态和媒体文件服务方面遇到了严重问题 我喜欢 Django 但到底为什么他们用 STATIC URL STATIC ROOT STATICFILES DIR 使这些文件的服务
  • 使用命令行从谷歌下载图像[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想用命令行下载谷歌给我的第n张图像 即像使用命令一样wget 搜索图像 something 我只是去页面https www google
  • const 中 u32::BITS 的替代方案是什么?

    我有一些代码可以做到这一点 const MY CRAZY CONSTANT u32 1 lt lt u32 BITS 1 我尝试使用 Rust nightly 2016 03 29 编译它 但失败并显示以下消息 error no assoc