摘要: C++11 标准为 C++ 引入右值引用语法的同时,还解决了一个 C++ 98/03 标准长期存在的短板,即使用简单的方式即可在函数模板中实现参数的完美转发。那么,什么是完美转发?它为什么是 C++98/03 标准存在的一个短板?C++11 标准又是如何为 C++ 弥补这一短板的?别急,本节将就这些 阅读全文
posted @ 2023-04-30 17:31 imxiangzi 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 目录 1、不完美转发 2、完美转发 2.1、引用折叠 2.2、std::forward 1、不完美转发所谓完美转发,是指在函数模板中,完全按照模板的参数的类型,将参数传递给函数模板中调用的另一个函数。比如: template <typename T>void IamForwording(T t){ 阅读全文
posted @ 2023-04-30 17:14 imxiangzi 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 不管是T&&、左值引用、右值引用,std::forward都会按照原来的类型完美转发。 forward主要解决引用函数参数为右值时,传进来之后有了变量名就变成了左值。 #include <QCoreApplication> #include <memory> #include <iostream> 阅读全文
posted @ 2023-04-30 11:45 imxiangzi 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 首先先描述一下C++中各种类型的值(以下无特殊说明“类型”皆按如下分法)lvalue(left value)左值:有标识符,且不能被回收rvalue(right value)右值:有无标识符皆可,可以被回收glvalue(generalized left value)泛左值:有标识符,可不可被回收皆 阅读全文
posted @ 2023-04-30 10:21 imxiangzi 阅读(37) 评论(0) 推荐(0) 编辑