为什么一元减法会进行积分提升?

2023-11-27

const auto min = -std::numeric_limits<T>::max();
T x = min; // conversion from 'const int' to 'short', possible loss of data

T 是模板参数,ashort在这种情况下。一元减法显然执行积分提升。

  • 为什么一元减法会进行积分提升?
  • If auto更改为T不会生成警告,但它应该将 int 分配给short。为什么没有警告(可能是 VS 很花哨)?

简短的回答:(现在很长,因为人们想要对英语过于迂腐,这本质上是不准确的)。

它不是明确的(如一元减号mathematical)。 但作为任何操作的一部分(这包括一元减operation)在 POD 数据上,对输入参数进行隐式检查(可以在 and 操作中使用的最小整数类型是int)因此在一元减法之前的输入上存在积分提升(mathematical部分不是操作部分)。 POD 上所有操作的输出与输入参数相同(应用积分提升后)。因此这里的输出也是int.

长答案:

在 C(以及 C++)中,POD 操作发生的最小类型是int。因此,在应用一元减号之前,该值将转换为 int。然后应用一元减号。表达式的结果是int.

看这里:C++ 运算符中的隐式类型转换规则

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么一元减法会进行积分提升? 的相关文章

  • 将集合绑定到自定义控件属性

    我没有运气尝试将数据集合绑定到我的自定义控件的属性 我已经实现了该控件的字符串属性的机制 在此处提供了一些帮助 并期望集合类型同样简单 但是我无法让它再次工作 这是我的自定义控件视图
  • 通过 SocketCAN 进行 boost::asio

    我正在考虑利用升压阿西奥 http www boost org doc libs 1 49 0 doc html boost asio html从a读取数据套接字CAN http en wikipedia org wiki SocketCA
  • 使用 mono/nunit-console/4 在 Mac OS X 控制台上运行测试

    我安装了 Max OS X 10 11 1 上面装有 Xamarin 我编写了简单的测试类 只是为了测试在 Mac OS X 和 Ubuntu 上运行 Nunit 测试 该类实际上有一个返回字符串的方法 using System names
  • 有没有快速创建集合的方法?

    目前我正在创建一个像这样的新集 std set a s s insert a1 s insert a2 s insert a3 s insert a10 有没有办法创建s在一行 int myints 10 20 30 40 50 std s
  • 在 C# 中按元素相乘数组具有意想不到的性能

    我想找到按元素相乘两个数组的最佳方法 这是更广泛项目的一部分 其中性能而不是唯一的考虑因素 我今天开始用 C Linqpad 编写一些函数 因此它还没有以任何方式进行优化 下面代码的输出如下 Environment ProcessorCou
  • 如何在 C# / .NET 中创建内存泄漏[重复]

    这个问题在这里已经有答案了 可能的重复 托管代码中是否可能存在内存泄漏 特别是 C 3 0 https stackoverflow com questions 6436620 is it possible to have a memory
  • VS 程序在调试模式下崩溃,但在发布模式下不崩溃?

    我正在 VS 2012 中运行以下程序来尝试 Thrust 函数查找 include cuda runtime h include device launch parameters h include
  • GCC 和 ld 找不到导出的符号...但它们在那里

    我有一个 C 库和一个 C 应用程序 尝试使用从该库导出的函数和类 该库构建良好 应用程序可以编译 但无法链接 我得到的错误遵循以下形式 app source file cpp text 0x2fdb 对 lib namespace Get
  • 如何获取 QTableView 的标题列表?

    我有一个QTableView我的对话框中的对象 我需要访问该表的水平标题并将它们放入QStringList object 尽管进行了大量搜索 但我在 Qt 文档中找不到如何获取此标头列表 编辑 我发现的最接近的地方是this https w
  • 如何在 QTabWidget Qt 中展开选项卡

    我有一个QTabWidget像这个 但我想展开选项卡以 填充 整个小部件宽度 如下所示 我怎样才能做到这一点 我在用Qt 5 3 2 and Qt 创建者 3 2 1 Update 我尝试使用setExpanding功能 ui gt myT
  • Visual Studio Code:如何配置 includePath 以获得更好的 IntelliSense 结果

    我是使用 Visual Studio Code 的完全初学者 我不知道我在做什么 我已经四处搜索 也许还不够 但我找不到像我这样的人如何配置的简单解释c cpp properties json每当我单击带有绿色波浪线下划线的行旁边的黄色灯泡
  • C# 构建一个 webservice 方法,它接受 POST 方法,如 HttpWebRequest 方法

    我需要一个接受 POST 方法的 Web 服务 访问我的服务器正在使用 POST 方法 它向我发送了一个 xml 我应该用一些 xml 进行响应 另一方面 当我访问他时 我已经使用 HttpWebRequest 类进行了管理 并且工作正常
  • 如何通过 JsonConvert.DeserializeObject 在动态 JSON 中使用 null 条件运算符

    我正在使用 Newtonsoft 反序列化已知的 JSON 对象并从中检索一些值 如果存在 关键在于对象结构可能会不断变化 因此我使用动态来遍历结构并检索值 由于对象结构不断变化 我使用 null 条件运算符来遍历 JSON 代码看起来像这
  • 将标量添加到特征矩阵(向量)

    我刚刚开始使用 Eigen 库 无法理解如何向所有矩阵成员添加标量值 假设我有一个矩阵 Eigen Matrix3Xf mtx Eigen Matrix3Xf Ones 3 4 mtx mtx 1 main cxx 104 13 error
  • C# 中的 strstr() 等效项

    我有两个byte 我想找到第二个的第一次出现byte 在第一个byte 或其中的一个范围 我不想使用字符串来提高效率 翻译第一个byte to a string会效率低下 基本上我相信就是这样strstr 在 C 中做 最好的方法是什么 这
  • 跨多个域的 ASP.NET 会话

    是否有合适的 NET 解决方案来在多个域上提供持久服务器会话 即 如果该网站的用户在 www site1 com 下登录 他们也将在 www site2 com 下登录 安全是我们正在开发的程序的一个问题 Thanks 它是否需要在会话中
  • 更改 Windows Phone 系统托盘颜色

    有没有办法将 Windows Phone 上的系统托盘颜色从黑色更改为白色 我的应用程序有白色背景 所以我希望系统托盘也是白色的 您可以在页面 XAML 中执行此操作
  • 将 char[][] 转换为 char** 会导致段错误吗?

    好吧 我的 C 有点生疏了 但我想我应该用 C 来做我的下一个 小 项目 这样我就可以对其进行抛光 并且我已经有不到 20 行的段错误了 这是我的完整代码 define ROWS 4 define COLS 4 char main map
  • xsi:type 属性搞乱了 C# XML 反序列化

    我使用 XSD exe 根据 XML 架构 xsd 文件 自动生成 C 对象 我正在反序列化 OpenCover 输出 但其中一个部分类未正确生成 这是导致异常的行
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁

随机推荐

  • 以编程方式添加应用程序图标以在安装时停靠

    我希望在安装软件包 DMG 后将我的应用程序自动添加到扩展坞中 有谁知道如何做到这一点 安德鲁 有几种方法可以做到这一点 其中很大程度上取决于您如何安装应用程序 如果您使用 PackageMaker 安装应用程序 则可以运行 postfli
  • Redux-Form 通过外部交互更新字段值

    我有一个 redux form 连接到我的应用程序状态 一切似乎都运行良好 我可以获取数据并将其加载到我的表单中 然后提交数据并获取我想要的元数据 但是 我有一个自定义交互 颜色选择器 需要动态更改托管字段的值 我尝试的所有操作都会改变屏幕
  • 在c#中通过USB驱动POS打印机[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我有什么想法可以最好地从 C 驱动 USB POS 打印机 POS 打印机通常是基于串行 TCP IP 或 USB 的 我知道如何完成串行和 TCP
  • 如何找到调用者函数? [复制]

    这个问题在这里已经有答案了 关闭为完全相同的副本 如何找到调用当前方法的方法 Is this可以用c 吗 void main Hello void Hello how do you find out the caller is functi
  • 使用async需要async函数,但我的函数是async

    我正在改编一个使用回调的库使用承诺 当我使用时它正在工作then 但是当我使用时它不起作用await gt dbc solve AsyncFunction gt await dbc solve img await dbc solve img
  • 为什么 VB.Net 中每个窗体都有默认实例,而 C# 中却没有?

    我只是想知道有 Name 属性 它代表 Form 类的名称 此属性在命名空间内用于唯一标识窗体是其实例的类 并且在 Visual Basic 的情况下 用于访问窗体的默认实例 现在这个默认实例从何而来 为什么 C 不能有一个与此等效的方法
  • Rails 4:acts_as_taggable_on 的 text_field 不使用逗号分隔标签

    我试图让表单中的 text field 部分为逗号分隔的acts as taggable on 标签 现在 当我重新加载页面时 逗号会消失 因此如果一个字段有两个或多个标签 它们就会变成一个大标签 例如 我得到 Tag1 Tag2 Tag3
  • 系统调用期间发生 I/O 错误,S3 客户端的对等问题导致连接重置

    当尝试将文件 图像 音频 上传到 S3 时 我偶尔会遇到此异常 有什么解决办法吗 配置 Android 4x 5x aws android sdk s3 版本 2 2 14 Unable to execute HTTP request Wr
  • XML 可绘制对象在 4.3 和 4.1.2 上具有不同的行为

    我有以下可绘制的
  • 如何检查机器人是否连接到频道? |不和谐.py

    我决定尝试让我的不和谐机器人播放音乐 但我已经陷入困境了 主要是由于我找不到任何资源来帮助当前版本 所以我一直在参考文档中的所有内容 但是 我不知道如何检查机器人是否连接到语音通道 我努力了if not Client is connecte
  • initWithNibName VS viewDidLoad

    我几个小时以来一直试图了解何时应该使用 viewDidload 以及何时应该使用 initWithNibName 来设置 viewController 的属性 例如 我正在使用 TableViewController 并在 initWith
  • 与 pandas 中的 df.diff() 相反

    我搜索了论坛 寻找一种更清晰的方法来在数据框中创建一个新列 该新列是该行与前一行的总和 与 diff 函数相反 它取差值 这就是我目前解决问题的方式 df pd DataFrame c dd ee ff gg hh d 1 2 3 4 5
  • 如何刷新填充有BaseAdapter的Fragment中的ListView?

    我想在对话框关闭时刷新片段中的 ListView 到目前为止 刷新仅在我重新启动应用程序时才有效 我真的不知道为什么 以下是课程 这是带有 ListView 的片段 我想在对话框关闭时刷新它 public class RegisterLis
  • .net WebApi OData + Breeze => [Q] 未处理的拒绝原因(应为空)

    我有一个带有 OData EntitySetController 的 net 4 5 Web Api 在客户端我加载了以下js文件 jquery min js q min js datajs 1 1 1 min js breeze debu
  • 如何在并行foreach中使用await? [复制]

    这个问题在这里已经有答案了 所以我花了大半夜的时间试图解决这个问题 我有幸被介绍到Parallel ForEach昨天 除了一个细节之外 它的工作原理就像我想要的那样 我有以下内容 Parallel ForEach data d gt tr
  • 如何将 LI 元素定位到 UL 列表的底部

    我有这样的菜单项 Row1 Row2 Row 并且我希望它们不要那么宽 这就是为什么包括中断 具有最大宽度 我有这个 HTML div ul li Row1 li li Row1 Row2 Row3 li li Row1 li li Row
  • Git克隆不带master分支

    我有一个远程存储库http github com fernandezpablo85 Test 这个仓库有一个master分支 但它位于另外两个分支后面 因此当我克隆它时 我收到此警告 警告 远程 HEAD 引用不存在的引用 无法签出 而且我
  • 空闲字符*:下一个大小无效(快速)[重复]

    这个问题在这里已经有答案了 我在串联过程后释放 char 但我收到此错误 free 下一个大小无效 快速 0x0000000001b86170 下面是我的代码 void concat stringList list char res cha
  • 如何在alamofire中设置Cookie?

    如何设置 Cookie阿拉莫菲尔这样每次我杀死应用程序并重新启动它时 都会发送相同的cookie 斯威夫特 5 1 和阿拉莫菲尔 5 0 准备你的饼干 let cookieProps HTTPCookiePropertyKey domain
  • 为什么一元减法会进行积分提升?

    const auto min std numeric limits