C++11 类型(有符号+无符号)?

2024-01-26

#include <iostream>
#include <typeinfo>

using namespace std;

int main()
{
    int s = 2;
    unsigned int u = 3;

    auto k = s + u;

    if (typeid(k) == typeid(s))
        cout << "signed" << endl;
    else if (typeid(k) == typeid(u))
        cout << "unsigned" << endl;
    else
        cout << "error" << endl;
}

GCC 该程序的输出是:

unsigned

我很确定这要么是未定义的行为,要么是实现定义的行为 - 但我似乎无法将这些点与标准联系起来。

你能告诉我标准中哪里有这样的说法吗?


你看到的只是效果常用算术转换 http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Core-C-/Stephan-T-Lavavej-Core-C-7-of-n.

该标准规定如下:

§5 [expr] p7:

许多需要算术或枚举类型操作数的二元运算符会以类似的方式导致转换并产生结果类型。目的是产生一个通用类型,这也是结果的类型。这种模式称为通常的算术转换,其定义如下:

  • [...]
  • Otherwise, the integral promotions (4.5) shall be performed on both operands. Then the following rules shall be applied to the promoted operands:
    • [...]
    • 否则,两个操作数都应转换为与有符号整数类型操作数的类型相对应的无符号整数类型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++11 类型(有符号+无符号)? 的相关文章

  • 错误:表达式不可赋值三元运算符

    我有以下代码 MPLABX XC8 编译器给出此错误 错误 表达式不可分配 U1ERRIRbits RXFOIF uart1 oerr 1 uart1 oerr 0 这是相关代码部分 typedef union struct bool fe
  • 如何使用不同的基本路径托管 Blazor WebAssembly 应用程序

    我有一个 Blazor Webassemble NET 托管应用程序 在我们托管它的服务器上 应用程序的基本路径将是mydomain com coolapp 因此 为了尝试让应用程序在服务器上正确呈现 我一直遵循本页 应用程序基本路径 部分
  • copy_from_user() 错误:目标大小太小

    我正在为内核模块编写 ioctl 处理程序 我想从用户空间复制数据 当我编译禁用优化的代码时 O0 gflags 编译器返回以下错误 include linux thread info h 136 17 error call to bad
  • 来自 double 的 static_cast 可以优化分配给 double 吗?

    我偶然发现了一个我认为不必要的功能 并且通常让我感到害怕 float coerceToFloat double x volatile float y static cast
  • C++中类成员函数相互调用有什么好处?

    我是 C 新手 我发现下面的编程风格对我来说很有趣 我在这里写了一个简化版本 include
  • 如何以编程方式删除受信任的根证书颁发机构中的证书?

    我需要能够从组织中的每台电脑中删除特定的证书 是的 我可以逐个座位 但我要到周四才能完成 而且我没有人力逐个座位 是否有使用 C 的编程方式来执行此操作 我认为你不需要编写任何 C 看看certmgr exe del http msdn m
  • Visual Studio 2013 调试器显示 std::string 的奇怪值

    我有一个大型的 cmake 生成的解决方案 其中包含许多项目 由于某种原因 我无法查看字符串的内容 因为根据调试器 Bx Buf含有一些垃圾 text c str 正确返回 Hello 该问题不仅仅发生在本地字符串上 返回的函数std st
  • 获取列表框中视图中的项目

    我有一个 ListBox 其属性 VirtualizingStackPanel VirtualizationMode 设置为 回收 我正在绑定一个自定义集合 实现IList and IList
  • 我担心我添加了太多接口

    我正在构建我的领域模型并继续重构它 正如我所做的那样 我发现我喜欢接口 因为它允许我根据接口为具体类型创建可重用的方法 控制器 视图 但是 我发现每次向域实体之一添加新属性时 我都会创建一个接口 例如 我有一个会员状态从抽象继承的对象Ent
  • 加载 QPixmap 数据的更好方法

    更好的方法来做到这一点 没有QImage QImage image width height QImage Format RGB888 memcpy image bits m frameRGB gt data 0 height width
  • 注入包含接口的所有已注册实现的 Enumerable

    给出以下接口 public interface IMyProcessor void Process 我希望能够注册多个实现 并让我的 DI 容器将它们的可枚举注入到这样的类中 public class MyProcessorLibrary
  • 更改私有模块片段是否会导致模块重新编译?

    On 此页面有关 C 20 模块功能 https www modernescpp com index php c 20 modules private module fragment and header units 我发现了这样的说法 借
  • 如何从 Powerpoint 2010 导出电影?

    如何使用 MS Office PIA 主互操作程序集 或其他方式以编程方式将嵌入视频从 powerpoint 2010 导出到外部文件 在演示文稿中嵌入视频是 Powerpoint 2010 中的一项新功能 我找不到解决方案 PPTX 文件
  • C# 可以为控制台应用程序部分类“程序”类吗?

    我想知道是否可以将为任何控制台应用程序创建的默认 程序 类更改为部分类 我想这样做是因为我想要更好的组织 而不是将所有方法都放在按区域分类的 1 个文件中 对我来说 将某些方法类别放在单独的文件中会更有意义 我对分部类的理解是 它是多个文件
  • main.cpp 是必需的吗?

    我试图编译一个程序cmake 我最终删除了我的main cpp文件 我刚刚将其复合到另一个包含我的项目名称的文件中 即 我刚刚将主函数剪切并粘贴到该文件中 问题是我有一个main cpp未发现错误 不确定是否在C 一个名为main cpp是
  • 将 AutomationID 与 ListView 结合使用

    我正在尝试将 AutomationId 附加到列表视图中的项目 理想情况下 将项目名称绑定到显示的项目
  • 如何在VS2005中使用从.bat而不是.exe启动的外部程序进行调试?

    在我的 c 项目的调试属性中 我选择了 启动外部程序 并选择了我希望将调试器附加到的程序的 exe 但是 现在我需要从 bat 文件而不是 exe 启动程序 但 VS2005 似乎不允许这样做 这可能吗 编辑 为了澄清 我需要调试从 bat
  • 异步/等待 - 是*并发*吗?

    我一直在考虑 C 5 中新的异步内容 并且出现了一个特殊问题 据我了解 await关键字是一个简洁的编译器技巧 语法糖来实现连续传递 http en wikipedia org wiki Continuation passing style
  • Adobe Illustrator 中的折线简化如何工作?

    我正在开发一个记录笔划的应用程序 您可以使用定点设备来绘制笔划 在上图中 我绘制了一个笔划 其中包含 453 个数据点 我的目标是大幅减少数据点的数量 同时仍然保持原始笔画的形状 对于那些感兴趣的人 上图笔画的坐标可以作为GitHub 上的
  • 如何使用 Microsoft Graph API 更新 MailboxSettings

    我想从不同的日历更新邮箱设置 如何构建可以通过 Microsoft Graph 更新 MailboxSetting 的请求 这是我的代码示例 但有例外 代码示例 User obj GraphServiceClient Users roomC

随机推荐

  • 使用 AudioKit for iOS < 11 进行离线音频渲染

    我有 4 个AKPlayer节点 每个节点都连接到一些效果 最后它们混合在一起 我想离线渲染 iOS gt 9 0 的输出 但我不知道如何做 编辑 我已经实现了渲染并将其分离为 iOS gt 11 虽然 iOS gt 11 renderTo
  • 无法读取 null 的属性“getHostNode”

    我有一个带有 React 路由器的 Horizo n React 应用程序 并且我的应用程序中有一个简单的按钮 Another Search 当我点击它时 出现以下异常 Uncaught TypeError Cannot read prop
  • Redux Saga 异步/等待模式

    我在整个代码库中使用 async await 因此 我的 api 调用是由异步函数定义的 async function apiFetchFoo return await apiCall 我想从我的传奇代码中调用这个函数 看来我不能这样做 D
  • 用户看到深度嵌套状态的一部分,可见属性是否应该位于顶层?

    我正在开发一款游戏 最初 用户处于单个地牢中 具有以下属性 state health 95 creatures bigBoss lightIsOn true goldReward 54 you get the idea 现在有很多王国 很多
  • C# DateTime ToString 标准区域性格式

    我可以更改特定区域性的 DateTime 的标准输出格式吗 例子 class Program static void Main string args PrintCultureDateTime ca ES PrintCultureDateT
  • 防止圆圈重叠

    我正在尝试找出 JavaScript 数学来将两个碰撞的圆移开 该图像的左侧是我已经拥有的内容的视觉表示 x1 y1 x2 and y2 are the positions of the circles r1 and r2 are the
  • 如何在 HSQL Db 内存单元测试中启用引用完整性

    我对整个 JPA 后端进行了 200 多个单元测试 它们在 hsql db 2 2 上都运行良好 我在连续构建环境中运行测试来验证系统的稳定性 除了当我在 Oracle 11 上运行它们时 一些测试因引用完整性约束而失败 这是由于我的代码中
  • CSS 在悬停时从不同元素更改元素内容

    是否可以in CSS当鼠标悬停在不同的元素上时更改元素的内容 举例来说 我有这个 div A B C D E F 当我将鼠标悬停在 B 中时 我想在 A 中显示一些文本 如果我将鼠标悬停在 C 中 A 中将会出现不同的文本 其余的也一样 当
  • ag-grid支持列虚拟化吗?

    这在有很多列且大多数列不在可见区域的情况下特别重要 是的 正如上面所述文档 https www ag grid com javascript grid accessibility dom order 默认情况下 网格使用虚拟化 网格技术 当
  • 实例删除:此应用程序有一个待处理的操作。请稍候并重试

    我在 GAE Standard Java 中的一个实例不知何故处于一种奇怪的状态 尝试删除它会导致 此应用程序有一个待处理的操作 请等待并重试 很长时间 对于重新部署新版本这一问题是否有任何解决方案 有趣的 在 Appengine 上映射自
  • AssertionError:内部:未指定默认项目

    气流新手 尝试运行 SQL 并将结果存储在 BigQuery 表中 出现以下错误 不确定在哪里设置default rpoject id 请帮我 Error Traceback most recent call last File usr l
  • 如何检测 WPF 控件何时被重绘?

    我正在使用 D3DImage 显示一系列帧 这些帧依次渲染到同一个 Direct3D Surface 上 我目前的逻辑是 显示最后渲染的帧 即D3DImage Lock AddDirtyRect Unlock 开始渲染下一帧 等待下一帧准备
  • 在 Mac os x Lion 上安装 mysql2 gem

    前几天我更新到了 Mac OSX Lion 它破坏了我的 Rails 安装 因为我必须重新编译 mysql 虽然我已经完成了工作 但重新安装 mysql2 gem 已经成为问题 我以前运行的是 leopard 所以我将从 32 位升级到 6
  • 循环遍历 UICollectionview 中的所有单元格

    我有 UICollection 其中有许多学生项目 每个项目内部都有开关 用于记录出勤情况 我像这样循环遍历所有可见的单元格 for attendancecollectionViewCell cells in self collection
  • Angular 6 - 拒绝应用“...”中的样式,因为其 MIME 类型(“text/html”)不是受支持的样式表

    尝试升级到 Angular 6 当我在 index html 中引用以下内容时 出现以下错误 拒绝应用来自 的样式https localhost 44394 assets primengcss themes omega theme css
  • 从链接下载文件

    我有一个使用 C 的网页 我希望用户能够单击链接 或链接按钮或按钮 我不挑剔 并显示 另存为 对话框窗口 以便他们可以下载文件 文件本身位于另一台服务器上 因此我必须使用绝对路径 i division department publicfi
  • 为 Secret Manager 配置凭证轮换时有关 Lambda 执行角色的问题

    我手动创建了一个轮换函数并将其链接到 Secret Manager 我已成功启用轮换 但是当我在 CloudWatch 中检查此轮换 lambda 的日志时 它显示错误 ERROR ClientError An error occurred
  • 如何限制管理员用户对活动管理员的访问

    我希望只有我的用户拥有他们的属性is admin设置为 true 以便能够访问我的活动管理后端 我应该怎么做 普通 用户应该只能登录该网站 而不能登录活动管理员 In config initializers active admin rb你
  • Three.js 中的旋转锚点

    我正在定义一个圆锥体 我需要能够围绕其顶点 圆锥体厚度最小的点 旋转 我还找不到设置旋转发生点的方法 var coneGeometry new THREE CylinderGeometry 1000 0 width 50 50 false
  • C++11 类型(有符号+无符号)?

    include