哪些功能可以应用于RVALUE
What functions can be applied to rvalues?
我看到了:
std::tie(iter, inserted) = set_of_s.insert(value);
来自http://en.cppreference.com/w/cpp/utility/tuple/tie
std::tie
应该返回rvalue元组,但随后将分配操作员应用于它。这是如何工作的?我认为任务操作员只能应用于lvalue?
哪些功能可以应用于rvalues?
an rvalue 可以是
- 通过成员函数的
this
参数 - 按价值通过
- 由
const
lvalue 参考 - 通过 rvalue 参考。
non-const lvalue 参考。
这是如何工作的?
超载分配运算符是成员函数,因此可以在 rvalue 。
上调用。我认为任务操作员只能适用于lvalue?
内置分配运营商就是这种情况。超载运算符是函数,遵循与函数相同的规则。
是的,内置的=
操作员必须在其左操作数中具有lvalue。但是,这不是外观的内置=
操作员。相反,它是对函数operator=
的调用,等效于:
std::tie(iter, inserted).operator=(set_of_s.insert(value));
类成员访问操作员.
不需要其左操作数即可成为lvalue,所以一切都可以。
旁注:不要将表达式的值类别与lvalue/rvalue参考类型混淆。任务运算符很可能以左操作数为rvalue参考的名称,因为它的名称是lvalue。
相关文章:
- 使用 fopen 打开 .pak 文件并使该文件应用于 const 无符号字符* (C++)
- 使用 std::应用于 std::bind
- 如何将Affine3d应用于Vector3d
- 运算符 += 应用于 std::valarray<int*>
- 函数可以应用于 std::optional,并返回一个可选值吗?
- 为什么带有类型参数的运算符 () 可以应用于 result_of 上下文中的类型?
- 当正斜杠运算符应用于C++中的字符串类型时,它会做什么
- 将MFPKEY_ASFMEDIASINK_AUTOADJUST_BITRATE应用于IMFSinkWriter
- (C++)(Visual Studio) 将高斯模糊滤镜应用于 RGB 中的灰度图像
- 在运行时将更改的环境变量应用于 QApplication
- Strcmp 类行为应用于C++中的对象列表
- 如何将 ItemDelegate 设置为仅应用于 QTreeView 中的父列
- 什么是应用于C 和CMAKE的定义
- 将对象方法从向量应用于C 的第二个向量中的对象
- STL:将功能应用于Adchacent_difference的结果,而无需额外的容器
- WXWIDGETS应用于WXStaticBitMap时,屏幕截图将大部分图像留为空白
- 如何将垂直纹理应用于QT Surface3D
- 如何将[[nodiscard]]属性应用于lambda
- 奇怪的语法构造 - 应用于 typedef 的运算符 () 使用 VS2015 成功编译
- 哪些功能可以应用于RVALUE