Modern C++ 学习笔记 -- 左值与右值

💡 原文中文,约4500字,阅读约需11分钟。
📝

内容提要

左值和右值是Modern C++中引入的新概念,左值位于等号左边,右值位于等号右边。C++中引入了左值引用和右值引用的概念,右值引用配合std::move可以实现移动语义,完美转发可以保持参数的属性不变。

🎯

关键要点

  • 左值和右值是Modern C++中的新概念,左值位于等号左边,右值位于等号右边。
  • 左值可以进行取地址操作,而右值(如字面常量)不能。
  • 左值可以隐式转换为右值,但右值不能转换为左值。
  • 左值引用只能指向左值,右值引用只能指向右值。
  • 通过const关键字,左值引用可以指向右值,但不能修改其值。
  • 右值引用用&&表示,可以修改其指向的右值。
  • 左右值引用的引入是为了避免拷贝,提升性能。
  • std::move将左值转换为右值,配合右值引用实现移动语义。
  • 完美转发允许在方法间转发参数及其属性,使用std::forward实现。
  • std::forward根据参数类型转换为左值或右值,确保正确的重载调用。
➡️

继续阅读