标准库类型的赋值运算符的 ref 限定符

2024-03-23

我想知道,标准类型的赋值运算符没有左值引用限定是否有原因?他们都不是。

因此,我们可以这样写:

std::string{} = "42";
std::string s = "hello " + std::string{"world"} = "oops!";

std::vector<int> v = { 1,2,3 };
std::move(v) = { 4,5,6 };

如果赋值运算符是左值引用限定的,则所有这些示例都将无法编译。

是因为有很多东西需要修改(但后来是为了 noexcept)而没有人写提案?我不认为人们会写这样的代码,但库不应该被设计成甚至不允许这样做吗?


你的建议是2009年提出 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2819.html,并最终于当年在法兰克福被拒绝“对向后兼容性的担忧” http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2920.html.

这将是一个突破性的改变,我们不喜欢这样。

无论如何,现有的禁止分配给内置类型的右值的实际价值有限,因此潜在破坏现有代码的成本是几乎肯定被认为“不值得” https://stackoverflow.com/q/28598468/560648.

如果我们有一个干净的石板,图书馆会以这种方式设计吗?也许。

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

标准库类型的赋值运算符的 ref 限定符 的相关文章

  • 更改 botframework Formflow 中的确认选项

    我在 botframework 中创建了一个表单流 我想更改确认选项 默认情况下需要 是 和 否 但我希望它继续进行 而不是 是 即使用户输入 确定 是 是 等 我如何添加确认选项 您需要将新条款添加到YesFormBuilder 配置的数
  • 以编程方式最大化屏幕一半的窗口

    我想最大化屏幕左侧的随机窗口 我可以在我的代码中使用 Windows Aero 函数吗 这个窗口can像用鼠标一样最大化 我只想以编程方式做到这一点 I use C 我可以得到IntPtr窗户的 如果可能的话 不要伪造鼠标或键盘输入 这可以
  • Attachconsole的问题

    我需要使 Windows GUI 应用程序可以在控制台中运行 因此当使用命令行调用应用程序时 我将控制台附加到进程 但是 应用程序退出后 除非按 ENTER 键 否则不会显示带有路径的控制台提示符 有什么办法可以不按回车键直接显示路径提示吗
  • jni.h:没有这样的文件或目录

    我一直在关注本教程 http www java tips org other api tips jni simple example of using the java native interface html 在第 5 步 我从 GCC
  • 指向基类的基本多态指针

    虽然我已经在 C 领域工作了一段时间 但直到现在我才需要使用多态特性 而且我对它们非常感兴趣 如果我有一个基类ClassA和另一个ClassB从中衍生出来 我明白我可以拥有virtual中的成员函数ClassA即 当实施于ClassB 将被
  • 如何序列化其类相互引用的类层次结构,但避免 XmlInclude?

    我有一个类的层次结构 我想使用XmlSerializer类及其相关属性 有一个基本抽象类 然后是相当多的派生类 在下面的代码中 我已将派生类的数量减少到五个 但实际代码中还有更多 这些类形成一个层次结构 并且经常包含对层次结构中类的实例的引
  • std::function 和 std::bind 行为

    我有这个代码 include
  • 如何在 servicestack.net 中实现身份验证

    我正在调查 servicestack net 但它的示例和文章似乎没有涵盖身份验证 这是由 servicestack net 处理的东西 如果是的话如何处理 我特别有兴趣实现对以下方面的支持 OAuth 因此能够检查原始请求并验证它 检索关
  • 未初始化的枚举变量值

    我使用 enum 声明新类型 DAY 然后从中声明两个变量 day1 和 day2 然后当我使用未初始化的值时 我应该看到 0 到 6 之间的值 因为 enumlist 中的值介于 0 到 6 之间 但我收到了这些值改为 858993460
  • 提升精神带走关键字并忽略船长

    这是使用表达式的语法的一小部分 prefix lit L not gt gt prefix lit gt gt prefix postfix 我在 postfix 内部有某种方式纯名称获取标识符 name pure lexeme boost
  • 从 std::list 中删除具有特定值的元素

    我需要从 std list 中删除具有特定值的元素 随着list
  • 如何从函数调用事件处理程序?

    我有一个类 我从中调用一个函数ABC string st 带字符串参数 该函数定义在一个Form class Form1 我有一个列表视图 想要从函数中自动调用列表视图 mouse click 事件 我该如何做到这一点 您不能调用另一个类的
  • __syncthreads() 死锁

    如果只有部分线程执行 syncthreads 会导致死锁吗 我有一个这样的内核 global void Kernel int N int a if threadIdx x
  • NullValueHandling.Ignore 使用 JsonConverter::WriteJson

    我正在尝试执行自定义序列化 所有快乐路径代码都可以工作 但空值路径的行为并不像我想要的那样 我已将序列化器设置设置为NullValueHandling Ignore我的对象图的其他部分为空 并且不使用我的自定义序列化 已删除空值 看起来 N
  • 有条件地使用按位运算符

    条件运算符如何使用按位运算符表示 这是一个家庭作业问题 我必须仅使用按位运算来实现条件运算符 那就很简单了 如果if允许使用语句 但它必须是严格的按位运算符 仅运营商 gt gt and lt lt 可以使用 不if可以使用语句或循环 该函
  • __get_cpuid 的可移植性如何?

    我在用着 get cpuid 获取有关的信息x86 and x86 64我的程序运行的处理器 在 Linux 和 Mac OS 上使用 GCC 似乎可以在不包含任何头文件的情况下编译和运行 但是它的可移植性如何 它可以与其他编译器一起使用吗
  • 如何在 asp.net 中用空字符串替换字符串中的任何“/ \\ [ ] : | < > + = ; , ? *”字符

    我想用 asp net c 中的空字符串替换字符串中出现的任何以下字符 我正在尝试将其替换为 mystring contains mystring Replace 目前我正在按照上面的方法进行 有没有更干净的方法来做到这一点 感谢致敬 有很
  • gcc 不会编译和运行 MySQL C 库

    include
  • VB.NET 相当于 C# var 关键字 [重复]

    这个问题在这里已经有答案了 是否有与 C 等效的 VB NETvar关键词 我想用它来检索 LINQ 查询的结果 选项推断 http msdn microsoft com en us library bb384665 aspx必须是on为了
  • 无法使用 openxml 在 PPT 报告中生成第二个表

    我有这个代码 我能够完美地生成带有文本数据的 pptx 报告 我在这份报告中还有 4 个表格 其中包含动态数据 我可以在 PPT 中生成一张表格 但无法生成多个表格 Requirement On the right I have 4 tab

随机推荐

  • javap 可以像 objdump -S 一样显示与字节码混合的原始源代码行吗?

    我知道编译时此调试信息包含在 class 文件中 和 javac g Main java 并且可以从手动观察LineNumberTable 部分 javap c constants private verbose lt gt 我想要的是做j
  • 动态 Linq GroupBy 选择无法正常工作

    请指导 我可以使用动态分组依据 但是在选择非聚合字段时 出现以下错误 类型 IGrouping 2 中不存在属性或字段 名称 var result311 IQueryable gle1 temptable Where a gt a IsAl
  • 如何从播放应用程序中的 play.mvc.Result 对象中提取结果内容?

    实际上我正在从一个播放应用程序重定向到另一个播放应用程序 最后我收到作为 Result 对象的响应 下面是两个应用程序中的操作 我正在从 application1 重定向到 application2 应用程序 2 将返回我需要提取的 JSO
  • 为什么在android中的输入流之后要关闭OutputStream

    我正在以这种方式从 android 连续调用我的 servlet 两次 FIRST CONNECTION URL url new URL http 172 16 32 160 8080 xyz check availability Http
  • 安排 Google Cloud Dataflow 作业的最简单方法

    我只需要每天运行一个数据流管道 但在我看来 像 App Engine Cron Service 这样需要构建整个 Web 应用程序的建议解决方案似乎有点太多了 我正在考虑仅从 Compute Engine Linux 虚拟机中的 cron
  • 使用 C++ 中的标准流的灵活记录器类

    我想创建一个灵活的记录器类 我希望它能够将数据输出到文件或标准输出 另外 我想使用流 该类应该类似于 class Logger private std ostream m out or ofstream iostream i don t k
  • 在此 dnvm.ps1 命令中哪些参数显示未定义?结果部署到 Azure 网站失败

    我一直在 Linux 上开发一个新的 ASP NET 5 MVC 6 网站 我正在将 Git 与 Azure 结合使用 并且已经能够成功将其推送到 SCM 然而 由于一些未定义的参数 我的部署失败了 希望有人能告诉我终端输出中显示的命令中未
  • 如何使用 pythonnet 在 python 侦听器中订阅 .NET 事件?

    我正在尝试创建一个事件侦听器来订阅tick使用 Python 的外汇交易应用程序的 价格 事件 原始应用程序是一个本机 32 位 Windows 应用程序 名为元交易者4 这没有任何 API 所以mtapi https github com
  • 返回修改后的类和使用 type() 之间的区别

    我想这更像是一个 python 问题 而不是 django 问题 但我无法在其他地方复制这种行为 所以我将使用无法按预期工作的确切代码 当我发现这个工厂函数片段时 我正在 django 中处理一些动态表单 def get employee
  • GitHub Copilot - 请登录 github 并重试

    对于 Intellij 插件 GitHub Copilot 显示错误please login to github and try again 我已经完成了以下操作 使用我的 GitHub 用户和密码对 GitHub Copilot 进行了身
  • Swift UITableViewCell 对齐

    我正在尝试显示如下页面 页面标题 左对齐 区域名称 中心对齐 该地区的人 详细标签中带有电子邮件的副标题 但是 如果我选择副标题作为单元格样式 则所有内容都将左对齐 并且我无法在代码中更改它们 然后 如果我选择自定义作为样式 则详细文本标签
  • 当尝试在 R 中运行 kNN 时,我收到由 coercionNAs 引入的错误 NAs?

    我正在尝试在数据集上运行 kNN 但我不断收到一些 NA 错误 我已经用尽了堆栈溢出试图找到这个问题的解决方案 我在任何地方都找不到任何有用的东西 这是我正在使用的数据集 https www kaggle com tsiaras uk ro
  • java.util.Vector - 替代品

    以前 当长度未知时 我一直认为 Vector 适合用于非描述性对象 据我所知 我认为它也是线程安全的 什么会改变这一点Vector不应再使用 有什么替代方案 你应该使用ArrayList代替Vector Vector使用内部同步 但这对于实
  • Android - 如何拦截“安装应用程序”意图

    好吧 所以不完全确定这是可能的 但尝试编写一个应用程序 以便我可以在执行以下任何活动之前运行一些代码 1 从网络下载 APK 并启动安装程序 2 在android市场上按下安装按钮 是否有可能拦截并提示这些事件 或者谷歌已经将这些东西锁定得
  • 如何在 css URL 中使用相对/绝对路径?

    我有一个生产和开发服务器 问题是目录结构 发展 http dev com subdir images image jpg http dev com subdir resources css style css 生产 http live co
  • 通过进程 ID 将 KeyEvent 发送到目标窗口

    我需要创建一个关键事件 cmd r 用于刷新浏览器窗口 并传递我尝试定位的窗口的进程 ID 比方说 let customEvent NSEvent keyEvent with NSEvent EventType keyUp location
  • 表达式集子集化

    我有一个ExpressionSet我想要子集的对象 例如 gt str ESet Formal class ExpressionSet package Biobase assayData phenoData STATUS num 1 210
  • 在python中将JSON存储到数据库中

    我定期从 API 获取一些数据 并希望将 JSON 数据存储到数据库中以便稍后访问和使用 从 API 中 我每次都会获取此样本中的数据 data cursor null files nodes u code u BOPhmYQg5Vm u
  • CLLocation距离位置(在Swift中?)

    有人可以帮我将以下 Objective C 语句转换为 Swift 吗 CLLocationDistance distance fromLocation distanceFromLocation toLocation 我知道做到这一点一定很
  • 标准库类型的赋值运算符的 ref 限定符

    我想知道 标准类型的赋值运算符没有左值引用限定是否有原因 他们都不是 因此 我们可以这样写 std string 42 std string s hello std string world oops std vector