![]() |
1
10
见
显然,这个物体应该仍然是毁灭性的。但除此之外,我认为这是一个好主意,仍然可以转让。标准规定满足“可移动构造”和“可移动可分配”的对象:
这意味着,我认为,该对象仍然可以参与任何不声明任何先决条件的操作。这包括可复制可构造、可复制可分配、可破坏和其他东西。注意,从核心语言的角度来看,这对您自己的对象不需要任何东西。这些需求只有在您接触到描述这些需求的标准库组件时才会发生。
不幸的是,这主要取决于参数是否在函数模板中并使用模板参数:
但是对于函数模板
不能这么说,因为第二个模板在用左值调用后,将把类型作为合成声明的参数
尽管有这个问题报告,我不认为这两个模板是模棱两可的。部分排序将使第一个模板更加专业化,因为在去掉引用修饰符和
这使得
这在
this article
. 第二个调用使用
另一种情况是,如果你这样做:
你已经明确要求
如果删除移动的行,行为仍将相同,因为它无论如何都会被覆盖。但这意味着使用
|
![]() |
2
4
当然,这取决于如何实现move构造函数和move赋值运算符。但是,如果要在标准容器中使用对象,则必须遵循
|
![]() |
3
2
|
![]() |
apetrai · 我应该如何假设算法使用哪种迭代器类别? 2 年前 |
![]() |
ridiculous_fish · std::是否保证短路? 2 年前 |
![]() |
Fabio · 在c中将指针赋给常数指针++ 2 年前 |
![]() |
johnco3 · 初始化固定C数组成员结构 6 年前 |
![]() |
mans · 为什么出现此错误:constexpr在此处无效 6 年前 |
![]() |
juztcode · 在C++中尝试捕获-创建了多少个对象 6 年前 |
![]() |
Steven Scott · 忽略元素的基于范围的for循环 6 年前 |