`const &&` 是否绑定到所有纯右值(和 xvalues)?

2023-11-26

C++标准定义了以下删除的函数;

template <class T>
void ref(const T&&) = delete;

template <class T>
void cref(const T&&) = delete;

这是为了帮助确保函数不会通过不允许它们绑定到临时值(右值)而被滥用。

  • Does const &&绑定到所有右值,特别是右值?
  • Would const &&绑定到所有“移动的对象”(xvalues;基本上是从std::move或类似)?

我可以推断它应该,但我没有任何“证据”。

  • Or conversely, are there cases where an rvalue (prvalue or xvalue) will not bind to const &&?
    • 如果是这样,怎么会这样?

注意:从评论中可以清楚地看出,这个问题严重依赖于经典右值,纯右值类别。


T const&&可以绑定到类型的右值T or const T.

从8.5.3开始[dcl.init.ref]第5段:

5 - 对类型“cv1 T1”的引用由“cv2 T2”类型的表达式初始化,如下所示:[...]
— 否则,[...] 引用应为右值引用。 [...]
— 如果初始化表达式
— 是 xvalue、类纯右值、数组纯右值或函数左值,并且“cv1 T1”与“cv2 T2”引用兼容 [...] 然后引用绑定到初始化表达式的值 [...]

如果初始化表达式是非类类型的纯右值,则为引用绑定创建临时副本(同上)。

参考兼容性在 8.5.3p4 中定义;它需要相同或基本类别的关系以及相同或更高的简历资格。

因此对于要绑定的右值T const&&,其简历资格不得大于const.

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

`const &&` 是否绑定到所有纯右值(和 xvalues)? 的相关文章

  • 忽略控制器参数缺失导致的异常

    我有一个使用 MVC4 构建的面向互联网的网站 我偶尔会收到来自机器人或好奇的用户发送不完整 URL 请求的错误报告 例如 public class ProductController Controller HttpGet public v
  • 当我使用 iText 从 PDF 文件中提取文本时,我从前一页获取值

    我正在尝试从多页 PDF 文件中每个页面的特定位置提取文本块 我知道文本的位置 并且能够在第一页上正确提取它 然而 在第一页之后的页面上 提取的文本似乎正在累积 例如 如果第 1 页上的文本值为 A 第 2 页为 B 第 3 页为 C 那么
  • 如何反向遍历 C# 集合?

    是否有可能有一个foreach将以相反顺序遍历 Collections 对象的语句 如果不是foreach声明 还有其他方法吗 你可以用普通的for向后循环 如下所示 for int i collection Count 1 i gt 0
  • 如何在不缓冲的情况下从 WCF 流式传输响应?

    我有一个宁静的 webHttpBinding 自托管WCF服务 大多数方法都会向客户端返回 xml 或 json 版本的对象 我有几个触发长时间运行的方法的 GET 方法 我想将日志响应流式传输到浏览器 或应用程序 以便用户知道发生了什么
  • clangd 中有“includePath”选项吗?

    我曾经使用 VSCodeC C https marketplace visualstudio com items itemName ms vscode cpptools扩大 这个扩展中有一个功能 在 json 文件中 称为 includeP
  • 以编程方式解析和编辑 C++ 源文件

    我想以编程方式解析和编辑 C 源文件 我需要更改 添加代码的某些部分 即函数 类块等 中的代码 我也 最好 能够得到评论 我想做的部分事情可以用下面的代码来解释 CPlusPlusSourceParser cp new CPlusPlusS
  • ASP.NET身份更改密码

    我需要能够由管理员更改用户密码 因此 管理员不应输入用户的当前密码 他应该能够设置新密码 我查看了 ChangePasswordAsync 方法 但该方法需要输入旧密码 因此 此方法不适合此任务 因此我通过以下方式做到了 HttpPost
  • 如何使用鼠标指针和键盘快捷键捕获文本?

    我想使用 C 或 java 使用鼠标指针和键盘快捷键从打开的窗口捕获文本 喜欢babylon http babylon com 所以 我需要知道什么以及如何实施 我需要使用哪些库 或者我可以使用 winapi 吗 使用脚本语言创建您想要执行
  • 如何将字典中从一个键到下一个键的所有值相加? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个字典 其中 DateTime Now Date 转换为字符串作为键 整数作为值 我需要以某种方式将从一个输入键到下一个键的所有
  • 创建新文件夹的“Shell 命名空间”方式是什么?

    显然 这对于 win32 api CreateDirectory 来说是微不足道的 但我正在尝试托管一个 IShellView 并且希望以最面向 shell 的方式来做到这一点 我本以为 IShellFolder 中会有一个 createo
  • Boost的Dijkstra算法教程

    我很难弄清楚如何使用 Boost 的 Dijkstra 算法 我已经阅读了他们的示例和文档 但我仍然无法理解如何使用它 Boost的文档 http www boost org doc libs 1 50 0 libs graph doc d
  • C 中的 const 和指针

    将 const 与指针一起使用可能会导致指针对象无法通过使用相关指针取消引用来修改 但为什么我也不能修改指针不直接指向的内容呢 例如 int a 3 const int ptr a ptr 5 不会编译 但为什么 ptr 2 5 还编译不了
  • 从 C# 运行多个 python 脚本

    我希望有人能够在这里帮助我 我对 C 比较陌生 正在尝试执行我在 C winform 应用程序中编写的一些 Python 代码 我想做的是从 winform 中的文本框中输入名称 并让它通过 python 脚本进行处理 并在 winform
  • 当我更新具有相同数据类型的另一个列表时列表发生更改

    我的代码看起来像这样 public class Category public string CatId get set public string CatName get set public string SpecId get set
  • 如何在网络浏览器中打开 Excel?

    单击按钮时我需要在网络浏览器中打开 Excel 如何在 asp net 中执行此操作 您无法在客户端 浏览器 计算机上控制和启动软件 为什么 安全 如果这是可能的话 黑客早就接管了所有计算机 你能解释一下吗exactly你想做什么 如果您解
  • IE8固定标题,可滚动GridView

    我知道有人问过这个话题 但这些帖子都已经过时了 或者在 IE8 上不起作用 简而言之 我们基本上想要在 GridView 中对列标题进行 Excel 样式锁定 我见过几个解决方案 其中一个 jquery css setExpression
  • C#:迭代数据表:Rows、Select() 或 AsEnumerable()

    foreach DataRow row in myDataTable Select foreach DataRow row in myDataTable AsEnumerable foreach DataRow row in myDataT
  • C# 中线程之间发送消息

    如何在线程之间发送和接收消息 例如 一种解决方案是共享并发队列 尽管它的名称 并发队列 http msdn microsoft com en us library dd267265 aspx 这将允许您将一个对象从一个线程入队 并让另一个线
  • 配置 SourceTrail 以接受带有 @ 语法的嵌入式 c/c++ 头文件

    我正在尝试使用 Sourcetrail https www sourcetrail com https www sourcetrail com 快速了解 pic18 系列微控制器的一些旧嵌入式 c c 源代码 导入硬件包含文件时出现错误 该
  • 为什么对于某些数组 A,sizeof(A) 在函数内不起作用? [复制]

    这个问题在这里已经有答案了 下列 include

随机推荐

  • 如何将阴影背景白色更改为其他颜色

    我正在努力改变UIPageViewController做翻转动画时的阴影颜色 但它始终只显示白色 如何将反面背景颜色白色更改为其他颜色 例如黑色或棕褐色 iBook 也在做同样的事情 我提到下面的图片有白色背景 我想改变它的颜色 Scree
  • 纯javascript可拖动元素

    我知道网上有这样做的示例 但每个示例都不同 我自己的实现也是如此 我试图找出我的实现出了什么问题 因为它没有按预期工作 代码片段 var mousePressX 1 var mousePressY 1 document getElement
  • 在新的 Rails 项目中从 SQLite 更改为 PostgreSQL

    我有一个 Rails 应用程序 其数据库位于 SQLite 开发和生产 中 由于我要迁移到 heroku 因此我想将数据库转换为 PostgreSQL 无论如何 我听说本地开发数据库不需要从 SQLite 更改 所以我不需要更改它 但是 如
  • 是否可以从 Java 运行 C 源代码?

    现在我有一些 C 源代码 我想在我的 java 应用程序中使用它 我需要执行 C 源代码 并将结果返回到我的 java 应用程序 如何在我的 java 应用程序中重用 C 源代码 而不是将所有 C 源代码重新编写为 java 看一眼Java
  • Math.abs 返回 Integer.Min_VALUE 的错误值

    这段代码 System out println Math abs Integer MIN VALUE Returns 2147483648 是否应该返回绝对值2147483648 Integer MIN VALUE is 214748364
  • 如何更改 JavaFX 中子级的顺序

    是否可以更改 JavaFX2 子列表中节点的顺序 我试过set and Collections swap 然而两者都抛出IllegalArgumentException in Parent因为在某些时候 子列表在两个位置包含相同的项目 当节
  • Numpy 中的矩阵索引

    在开发涉及矩阵运算的小型 Python 脚本时 我越来越感到困惑 因此我启动了一个 shell 来玩一个玩具示例 并更好地理解 Numpy 中的矩阵索引 这就是我所做的 gt gt gt import numpy as np gt gt g
  • iPhone 事件套件:以编程方式创建 EKCalendar?

    我想在我的应用程序中插入事件 以便可以在 iPhone Calendar app 中查看它们 但由于我不想将用户事件与应用程序中的事件混合在一起 所以我想创建一个像 MyApp Events 这样的 EKCalendar 这可能吗 否则您将
  • 通过单个 API 调用获取包含见解的帖子 - Facebook Graph API

    我想知道是否有一种方法可以通过一次 API 调用获取最近 10 篇帖子及其一些见解 反应 影响力 观点等 目前我正在做的是获取最近 10 篇帖子并循环浏览他们的 ID 以获取他们的见解 但这会减慢请求速度 我期待这样的回应 posts da
  • 测试深层对象结构中属性的存在性

    在 javascript 中 假设我想访问对象深处的属性 例如 Entry mediaGroup 0 contents 0 url 在该结构的任何点上 属性都可能未定义 因此可能无法设置 mediaGroup 简单的说法是什么 if ent
  • PHP 获取标头不适用于 -

    我正在尝试获取 URL 标头的输出 它非常适合子域示例 subdomain example com 我将收到正常消息 HTTP 200 ok 等 但如果子域有 其中标题中不显示任何内容 test tumblr com or test tum
  • css / js 中的自动换行

    我正在寻找一种跨浏览器的方式来包装具有预定宽度的 div 内部没有中断空格 例如长 URL 的长文本部分 以下是我在网上找到的一些解决方案及其原因don t为我工作 溢出 隐藏 自动 滚动 我需要整个文本在不滚动的情况下可见 div 可以垂
  • 同一数据上的多个轴

    我试图在相同的数据上使用两个轴 数据有几个DefaultTableXYDatasets 情节是一个XYPlot 我有两个XYLineAndShapeRenderers和一个StackedXYAreaRenderer2 y 值的所有数据均以米
  • 按(逆)时针顺序排列凹多边形顶点?

    我有一组无序的顶点 可能形成一个凹多边形 现在我想按顺时针或逆时针顺序排列它们 答案在这里建议采取以下步骤 找到多边形中心 计算角度 按角度对点排序 这显然仅适用于凸多边形 当点形成凹多边形时就会失败 我怎样才能对凹面做到这一点 我正在使用
  • 除非打印出来,否则值不会在 while 循环中更新[重复]

    这个问题在这里已经有答案了 好的 所以我有一个监视线程 它检查 ArrayList 的大小 并在该大小大于某个数字后执行某些操作 我现在遇到的问题是大小值永远不会更新 除非我的循环中有打印语句 这是一些代码来展示我到底要做什么 while
  • python中多条线的最近交点

    我需要一个好的算法来计算最接近 python 中的线集合的点 最好使用最小二乘法 我发现这篇关于 python 实现的文章不起作用 在Python中使用最小二乘法找到多条线的中心 我在 Matlab 中发现了这个资源 每个人似乎都喜欢 但我
  • 以编程方式在 Android 屏幕上移动鼠标指针

    我正在开发一个 Android 应用程序 我想在 Android 平板电脑上移动 鼠标 指针 光标 我知道这是可能的 因为当我将鼠标 USB 或 BT 连接到 Android 平板电脑 Honeycomb 时 会出现一个光标 并且我可以仅使
  • 如何在kotlin android中将base64字符串转换为图像

    我有一个表示位图图像的 Base64 字符串 我需要再次将该字符串转换为位图图像 以便在我的 Android 应用程序中的 ImageView 上使用它 怎么做 您可以使用此代码进行解码 val imageBytes Base64 deco
  • Ruby:Titleize:如何忽略较小的单词,如“and”、“the”、“or”等

    def titleize string string split map word word capitalize join end 这给每个单词起了标题 但是我如何捕获某些我不想大写的单词呢 即 杰克和吉尔 并且请不要使用正则表达式 UP
  • `const &&` 是否绑定到所有纯右值(和 xvalues)?

    C 标准定义了以下删除的函数 template