Update item33.md

This commit is contained in:
猫耳堀川雷鼓 2021-03-03 11:02:23 +08:00 committed by GitHub
parent 6d82b02e8c
commit e43c78d16c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -56,7 +56,7 @@ Widget&& forward(Widget& param) //当T是Widget时的std::forward实
}
```
思考一下如果用户代码想要完美转发一个`Widget`类型的右值,但没有遵守规则将`T`指定为非引用类型,而是将`T`指定为右值引用,这会发生什么。也就是,思考将`T`换成`Widget`会如何。在`std::forward`实例化、应用了`std::remove_reference_t`后,引用折叠之前,`std::forward`看起来像这样:
思考一下如果用户代码想要完美转发一个`Widget`类型的右值,但没有遵守规则将`T`指定为非引用类型,而是将`T`指定为右值引用,这会发生什么。也就是,思考将`T`换成`Widget&&`会如何。在`std::forward`实例化、应用了`std::remove_reference_t`后,引用折叠之前,`std::forward`看起来像这样:
```c++
Widget&& && forward(Widget& param) //当T是Widget&&时的std::forward实例