我不明白为什么必须创建 std::move()
。难道一切都不能只是 static_cast<T&&>()
吗?我发现可能创建 std::move()
的唯一原因只是为了使代码更易于阅读。因此,程序员无需看到 static_cast
,而是可以看到 std::move()
并了解它在做什么。除此之外,我看不出任何目的。有人能帮我理解他们为什么创建 std::move()
吗?。
答案 0 :(得分:8)
是的,主要是关于可读性。
除了明确表达意图之外,std::move
不需要您手动编写类型。
答案 1 :(得分:3)
快速搜索提案 n1377
<块引用>static_cast 语法确实很丑。这不是 一定是件坏事,因为你想清楚地喊出你什么时候 做一些与从左值移动一样危险(和有用!)的事情。 但是当类型 A 为 一个长而复杂的标识符。