【发布时间】:2014-03-15 17:23:45
【问题描述】:
我今天在人们的回答中看到了几个地方,说我有 Foo 的构造函数。
Foo( std::vector<SomeType>&& data) noexcept : data_(std::move(data)) {};
为什么 std::move(data) 是必需的,因为数据类型不是 std::vector&& ?
std::move 在我看来,它只是将数据再次转换为 std::vector&& ?
http://en.cppreference.com/w/cpp/utility/move 将 std::move 定义为,
static_cast<typename std::remove_reference<T>::type&&>(t)
因此,在这种情况下,似乎 std::move 再次无关紧要,但我可能遗漏了一些东西。
【问题讨论】: