Merge pull request #29 from gosth/master

correct std:;move to std::move
This commit is contained in:
kelthuzadx 2020-06-17 20:47:21 +08:00 committed by GitHub
commit 0788bd3685
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -44,7 +44,7 @@ move(T&& param)
该函数返回类型的`&&`部分表明`std::move`函数返回的是一个右值引用但是正如Item 28所解释的那样如果类型`T`恰好是一个左值引用,那么`T&&`将会成为一个左值引用。为了避免如此类型萃取器type trait见Item 9)`std::remove_reference`应用到了类型`T`上,因此确保了`&&`被正确的应用到了一个不是引用的类型上。这保证了`std::move`返回的真的是右值引用这很重要因为函数返回的右值引用是右值rvalues)。因此,`std::move`将它的参数转换为一个右值,这就是它的全部作用。
此外,`std;:move`在C++14中可以被更简单地实现。多亏了函数返回值类型推导见Item 3)和标准库的模板别名`std::remove_reference_t`见Item 9)`std::move`可以这样写:
此外,`std::move`在C++14中可以被更简单地实现。多亏了函数返回值类型推导见Item 3)和标准库的模板别名`std::remove_reference_t`见Item 9)`std::move`可以这样写:
```cpp
template <typename T>