big*_*iao 5 c++ language-lawyer semantics c++17 value-categories
据我所知,在 c++17 中,纯右值的概念/语义不再是临时对象,因此在许多情况下强制执行复制省略。
如果表达式是纯右值,则函数返回的对象将直接由该表达式初始化。当类型匹配时,这不涉及复制或移动构造函数
为什么“对象”一词出现在这里?在值类别中,不是引用类型的函数的返回属于纯右值,所以我认为使用术语对象可能是不合适的。
根据我的理解,纯右值现在不再是对象,它们只是值,对吗?
作为补充,这里也使用术语“对象”。
我同意你的说法。cppreference 上有一个讨论页面,您可以在其中提出您的疑虑。更好的表达方式可能是
如果表达式是纯右值,则表达式的结果对象直接由该表达式初始化。
正如您所说,对象不再由纯右值返回或传递。
| 归档时间: |
|
| 查看次数: |
265 次 |
| 最近记录: |