【发布时间】:2020-07-14 00:06:40
【问题描述】:
我在网上看到的几乎每个左值到右值转换的例子都与int 等基本类型有关。
我自己找不到适用于类类型的 l2r 示例;在所有看似适用的示例中,通常有一个函数涉及 lvalue-ref(如 copy-ctor),l2r 似乎被抑制(参见例如this 问题)。
但是在 l2r 本身的描述中有一个关于类类型的子句(来自 [conv.lval]):
转换的结果根据以下规则确定:
<...> 如果 T 具有类类型,则转换会从泛左值复制初始化 T 类型的临时值,并且转换的结果是临时值的纯右值。
有人可以举一个这个条款的例子吗?我不能。
【问题讨论】:
-
有 basic.lval/3 “注意:只要在期望prvalue的上下文中出现glvalue,glvalue就会转换为prvalue”。在某些情况下,标准指定类类型的纯右值符合预期
标签: c++ implicit-conversion lvalue-to-rvalue