基本类型的复制/赋值

2023-12-22

标准对基本类型的复制/赋值有何规定?

对于类类型,我们有复制构造函数、赋值运算符,它们将右侧作为引用(它必须是引用,否则我们会无限递归):

struct Foo {
    Foo(const Foo &);
};

这是如何定义基本类型的?

看这个例子:

const Foo foo;
Foo f = foo;

const int a = 2;
int b = a;

Here, f = foo;网上争议解决用途foo,因为复制构造函数需要引用,对吧?如果基本类型的副本有一个引用参数,那么b = a会使用 ODRa以及。是这样吗?如果不是,如何处理?


我们可以追踪它。从 [dcl.init] 开始。

(17.8) https://timsong-cpp.github.io/cppwp/n4659/dcl.init#17.8- 否则,正在初始化的对象的初始值 是初始化表达式的(可能已转换)值。 如有必要,将使用标准转换来转换 初始化表达式为 cv 未限定版本 目的地类型;不考虑用户定义的转换。如果 无法完成转换,初始化格式错误。什么时候 使用无法表示的值初始化位字段, 位字段的结果值是实现定义的。

在这种情况下,标准转换是左值到右值的转换a。但这并不使用odra。我们在 [basic.def.odr] 中看到

2 https://timsong-cpp.github.io/cppwp/n4659/expr.const#2一个变量x其名称显示为可能评估的表达式ex被 ODR 使用的是ex除非应用左值到右值转换 到x产生一个不调用任何非平凡的常量表达式 函数,并且,如果x是一个对象,ex是集合中的一个元素 表达式的潜在结果e,其中 左值到右值的转换应用于e, or e是一个废弃值 表达。

a是一个常量表达式和替换a for x and ex上面演示了它满足条件的另一半,因此它不被使用。

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

基本类型的复制/赋值 的相关文章

  • 如何在 C++ 中的文件末尾添加数据?

    我已按照网上的说明进行操作 此代码应该将输入添加到文件 数据库 的末尾 但当我检查时 数据会覆盖现有数据 请帮忙 这是我的代码 int main string name string address string handphone cou
  • 使用 Unity 在构造函数中使用属性依赖注入

    好的 我在基类中定义了一个依赖属性 我尝试在其派生类的构造函数内部使用它 但这不起作用 该属性显示为 null Unity 在使用 container Resolve 解析实例后解析依赖属性 我的另一种选择是将 IUnityContaine
  • 使用Physics.Raycast 和Physics2D.Raycast 检测对象上的点击

    我的场景中有一个空的游戏对象 带有 2D 组件盒碰撞器 我将脚本附加到该游戏对象 void OnMouseDown Debug Log clic 但是当我点击我的游戏对象时 没有任何效果 你有什么想法 如何检测我的盒子碰撞器上的点击 使用光
  • 为 Visual Studio 2013 编译 Tesseract

    我正在尝试使用tesseract在 Visual Studio 2013 中 我在链接器 gt 输入 不是 libtesseract302 static lib 中使用 libtesseract302 lib 一切都正常 并且已编译并运行
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • 互斥体实现可以互换(独立于线程实现)

    所有互斥体实现最终都会调用相同的基本系统 硬件调用吗 这意味着它们可以互换吗 具体来说 如果我使用 gnu parallel算法 使用openmp 并且我想让他们称之为线程安全的类我可以使用boost mutex用于锁定 或者我必须编写自己
  • 如何从 .resx 文件条目获取注释

    资源文件中的字符串有名称 值和注释 The ResXResourceReader类让我可以访问名称和值 有办法看评论吗 你应该能够得到Comment via ResXDataNode class http msdn microsoft co
  • 在 C# 中循环遍历文件文件夹的最简单方法是什么?

    我尝试编写一个程序 使用包含相关文件路径的配置文件来导航本地文件系统 我的问题是 在 C 中执行文件 I O 这将是从桌面应用程序到服务器并返回 和文件系统导航时使用的最佳实践是什么 我知道如何谷歌 并且找到了几种解决方案 但我想知道各种功
  • 用于检查项目文件中的项目变量和引用路径的 api

    我正在研究一个 net application VS2010 与 x 没有 解和变量号这些解决方案中的项目数量 我需要检查项目属性 特定于一定数量的项目 是否同质 并且检查 验证构建期间的参考路径 有没有一个API是这样的吗 如果没有 我该
  • C# Dns.GetHostEntry 不返回连接到 WiFi 的移动设备的名称

    我有一个 C 中的 Windows 窗体应用程序 我试图获取列表中所有客户端的主机名 下面给出的是 ra00l 来自此链接的代码示例 GetHostEntry 非常慢 https stackoverflow com questions 99
  • 无法在 Windows 运行时组件库的 UserControl 中创建依赖项属性

    我想在用户控件内创建数据可绑定属性 这个用户控件包含一个 Windows 运行时组件 项目 我使用下面的代码来创建属性 public MyItem CurrentItem get return MyItem GetValue Current
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 关于在 Windows 上使用 WiFi Direct Api?

    我目前正在开发一个应用程序 我需要在其中创建链接 阅读 无线网络连接 在桌面应用程序 在 Windows 10 上 和平板电脑 Android 但无关紧要 之间 工作流程 按钮 gt 如果需要提升权限 gt 创建类似托管网络的 WiFi 网
  • C++:.bmp 到文件中的字节数组

    是的 我已经解决了与此相关的其他问题 但我发现它们没有太大帮助 他们提供了一些帮助 但我仍然有点困惑 所以这是我需要做的 我们有一个 132x65 的屏幕 我有一个 132x65 的 bmp 我想遍历 bmp 并将其分成小的 1x8 列以获
  • Visual Studio 中的测试单独成功,但一组失败

    当我在 Visual Studio 中单独运行测试时 它们都顺利通过 然而 当我同时运行所有这些时 有些通过 有些失败 我尝试在每个测试方法之间暂停 1 秒 但没有成功 有任何想法吗 在此先感谢您的帮助 你们可能有一些共享数据 检查正在使用
  • 如何在 Blackberry Cascades 中显示具有特定号码的电话板

    我正在使用带有 C QT 和 QML 的 Blackberry Cascades 10 Beta 3 SDK 以及 Blackberry 10 Dev Alpha Simulator 和 QNX Momentics IDE 并且我正在尝试实
  • 使用 Moq 使用内部构造函数模拟类型

    我正在尝试模拟 Microsoft Sync Framework 中的一个类 它只有一个内部构造函数 当我尝试以下操作时 var fullEnumerationContextMock new Mock
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • Process.Start() 方法在什么情况下返回 false?

    From MSDN https msdn microsoft com en us library e8zac0ca v vs 110 aspx 返回值 true 表示有新的进程资源 开始了 如果由 FileName 成员指定的进程资源 St
  • 如何正确使用 std::condition_variable?

    我很困惑conditions variables以及如何 安全 使用它们 在我的应用程序中 我有一个创建 gui 线程的类 但是当 gui 是由 gui 线程构造时 主线程需要等待 情况与下面的函数相同 主线程创建互斥体 锁和conditi

随机推荐

  • XML 漏洞

    xml 一直是面向服务的应用程序 SOA 的支柱 并且在未来它将变得非常有用 由于 xml 简单 灵活 因此很容易受到攻击 攻击者可以将其用于自己的目的 因此 一些攻击是强制解析攻击 XML外部实体 XEE 攻击 XML dos xdos
  • 从 PowerShell 调用 exe 并获取有关成功或失败的反馈

    如何在 PowerShell 中运行可执行文件并通过 if 语句确定它是成功还是失败 更具体地说 我试图让 devenv exe 从 PowerShell 脚本构建解决方案 我需要知道它是成功还是失败 失败是指构建失败 并且我假设 deve
  • Ruby 将数组合并为一个字符串

    在 Ruby 中 有没有一种方法可以将所有数组元素组合成一个字符串 数组示例 arr p Hello World p p This is a test p 示例输出 p Hello World p p This is a test p Us
  • 为什么 C++ 中元组的使用不常见?

    为什么似乎没有人在 C 中使用元组 或者Boost元组库 http www boost org doc libs 1 39 0 libs tuple doc tuple users guide html或者 TR1 的标准库 我读过很多 C
  • 将组件对齐到所需位置

    寻求帮助来设计如下所示的布局 我面临的主要挑战是将组件对齐到所需的位置 请参考三个按钮 图标 及其位置 从字面上看 就是发疯 思考如何将它们准确地放置在所需的位置 任何帮助深表感谢 问候 罗尼 由于您使用了 Android 类别 我假设您正
  • 如何使用 JavaScript 触发“isTrusted=true”点击事件?

    我正在尝试使用 Chrome 扩展来模拟用户点击和鼠标移动 例如 在我的内容脚本中 有一个按钮单击 document querySelector SOME SELECTOR click 该行触发具有以下属性的单击事件 MouseEvent
  • Maven原型:修改artifactId

    在进行项目时 我的要求是创建一个模块 该命令将类似于 mvn archetype generate DarchetypeCatalog local DartifactId test module 并且目标应该具有以下文件结构 test mo
  • PJSIP 库中的 TLSv1_2 (TLS1.2) 支持

    我正在使用最新的PJSIP http www pjsip org 我的 Android iOS 应用程序中的库 我想在我的项目中使用 TLSv1 2 连接 PJSIP 支持哪个 TLS 版本 从源代码来看它似乎支持TLSv1 0 有没有办法
  • 如何获取checkbox的值

    如何获取复选框的值 var tb new Ext Toolbar tb add xtype checkbox boxLabel Expand Groups by Default id GetChkBoxValue checked true
  • 应用程序终止自身最暴力的方式是什么(linux)

    我想模拟暴力系统关闭 即在应用程序级别尽可能接近断电 我们正在讨论 Linux 上的 c c 应用程序 我需要应用程序自行终止 目前我看到几个选项 call exit http linux die net man 3 exit call e
  • SortedSet - 存储类对象时的自定义顺序

    我正在考虑用 SortedSet 替换 HashSet 因为它更适合我存储的数据 然而 到目前为止我看到的所有示例都与存储简单对象有关 整数 字符串等 我想为具有多个属性的自定义类实现此功能 但是该类还包含一个我想用作 索引器 的日期 问题
  • 将长时间运行的任务分配到多个帧上的最佳方法是什么?

    我有多个长时间运行的任务 例如超过 10 毫秒 这会影响浏览器的响应能力 最糟糕的事情 例如从文件加载和解析 3D 模型 已经被卸载到 Web Workers 这样它们就不会影响渲染循环 然而 有些任务不容易移植到 Workers 因此必须
  • 警告:sprintf() [function.sprintf]:第 132 行 /home/inrunitc/public_html/chek/chek.php 中的参数太少

    Warning sprintf function sprintf Too few arguments in home inrunitc public html chek chek php on line 132 Query was empt
  • 在hive中向外部表添加分区需要花费大量时间

    我想知道向外部表添加分区的最佳方法是什么 我在 hive 的 S3 上有一个外部表 分区为 车辆 日期 小时 现在 可以在一天中的任何时间添加新车辆 并且有些车辆在一天中的几个小时或几天内没有数据 几种可能的解决方案 msck修复表 需 要
  • 如何解决 Apache-Beam 中的 Beam DeprecationWarning

    第一的 生成简单数据后将数据存储在谷歌云平台bigQuery表中的代码 导入 Apache Beam 库并使用它 跑步者使用了 Google Cloud Platform Dataflow 这里是代码 from apache beam op
  • numpy.dot -> MemoryError,my_dot -> 非常慢,但有效。为什么?

    我正在尝试计算两个大小分别为 162225 10000 和 10000 100 的 numpy 数组的点积 但是 如果我调用 numpy dot A B 则会发生 MemoryError 然后 我尝试编写我的实现 def slower do
  • MySQL 间隙锁定

    我有一张桌子叫tree nodes 在那里我存储了节点的 树表示 我的主题树是在持有者的上下文中创建的 所以 有一个专栏叫做holder id 我有一个事务方法 它会从此表和其他表中进行多次读取 以确定应从树中添加 删除哪些节点 我的应用程
  • 使用 Delve 进行 vscode 调试问题

    当我在 Visual Studio Code 中调试 Go Lang 代码时 出现以下错误消息 2018 04 03 18 19 32 server go 73 Using API v1 2018 04 03 18 19 32 debugg
  • android 父 Activity 在 startActivity 上被杀死

    我有一个带有列表视图的简单应用程序 当用户点击列表项时 我开始一个新活动 Intent eventdetails new Intent HomeActivity this EventDetailsActivity class eventde
  • 基本类型的复制/赋值

    标准对基本类型的复制 赋值有何规定 对于类类型 我们有复制构造函数 赋值运算符 它们将右侧作为引用 它必须是引用 否则我们会无限递归 struct Foo Foo const Foo 这是如何定义基本类型的 看这个例子 const Foo