当前位置: 首页 > news >正文

珠海建设公司网站大数据营销策略有哪些

珠海建设公司网站,大数据营销策略有哪些,邵阳公司网站建设,葫芦岛网站网站建设文章目录 万能引用/通用引用(universal reference)引用折叠完美转发(std::forward) 万能引用/通用引用(universal reference) C11增加了右值的概念,在模板中,可以用&&来表示…

文章目录

  • 万能引用/通用引用(universal reference)
  • 引用折叠
  • 完美转发(std::forward)

万能引用/通用引用(universal reference)

C++11增加了右值的概念,在模板中,可以用&&来表示右值引用,也可以用&&来表示万能引用。
1.如果重载了模板函数,一个参数是左值引用,一个参数是右值引用,那传入左值或者右值时会自动推导调用的函数模板。
2.如果只有一个模板函数,参数的写法是右值引用,此时传入左值或者右值都会调用这个模板函数。
因为这里的&&代表的是万能引用。

引用折叠

万能引用的实现原理是引用折叠,即模板函数的参数是 T&&,T的类型可以是int&或者int&&,T展开就是int& &&,或者int&& &&,此时发生引用折叠,左值引用还是折叠成左值,右值引用还是右值引用。

完美转发(std::forward)

不论函数的形参是左值引用还是右值引用,在传入函数后,在函数中再传入一个函数时,参数会丢失左值右值信息,在新的函数中会被视为左值。
为了保护参数的左值或者右值属性,就有了完美转发(std::forward<>())。

它的实现原理大概是:

Tempalte <typename T>
std::forward(typename std::remove_reference<T>::type& arg)
{static_cast<T&&>(t);
}
#include <iostream>using namespace std;#define _STD_FORWARD_USED_template <typename T>
void Print(T& t)
{cout << "Print param is lr." << endl;
}template <typename T>
void Print(T&& t)
{cout << "Print param is rr." << endl;
}template <typename T>
void Test_Func(T&& t) 
{
//当模板的参数出现&&时,他可能是右值引用,也可能是万能引用。cout << "Test_Func" << endl;
#if defined(_STD_FORWARD_USED_)Print(std::forward<T>(t)); //当使用std::forward<>()时,形参t保留了左值或者右值的属性。//因为保留了参数的初始属性,这就是[完美转发]。
#elsePrint(t); //当不使用std::forward<>()时,形参t被转换成了左值。
#endif
}int GetIntNum()
{return 1;
}
int main()
{int i = 9;int &li = i;int&& ri = GetIntNum();Test_Func(i);Test_Func(li);//这里有参数折叠,我们传入的是ing&,即T是int&,//此时实参列表式 int & &&,参数折叠为左值引用:int&。Test_Func(GetIntNum());//这里有参数折叠,我们传入的是右值,即T是右值引用int&&,//此时实参列表式 int && &&,参数折叠为右值引用:int&&。
}

输出结果:

->Not defined _STD_FORWARD_USED_* Test_Func* Print param is lr.* Test_Func* Print param is lr.* Test_Func* Print param is lr. ->defined _STD_FORWARD_USED_* Test_Func* Print param is lr.* Test_Func* Print param is lr.* Test_Func* Print param is rr.-->在defined _STD_FORWARD_USED_的基础上,注释void Print(T& t),仅保留void Print(T&& t)也是可以的。-->因为仅用&&函数时,&&就从右值引用,变成了万能引用。
http://www.mfbz.cn/news/678/

相关文章:

  • 请问我做吉利网站吉利啊网络广告设计
  • 平面设计培训班哪里有绍兴网站快速排名优化
  • 专业做域名的网站吗如何进行网络推广和宣传
  • 门户网站开发设计报告软件商店安装
  • 外国大气网站前端seo是什么意思
  • 电子商务网站建设规划范文学it需要什么学历基础
  • 家装要去哪个公司装修手把手教你优化网站
  • 建设网站多钱竞价推广是做什么的
  • 做微商进哪个网站安全吗推广的渠道和方法有哪些
  • c 网站开发引擎怎么在百度推广自己的网站
  • 网站宣传与推广的方法seo教程 seo之家
  • 最新网站开发价格企业查询网站
  • 网站排版工具武汉外包seo公司
  • 网站如何做收录排行搜索引擎营销的优势和劣势
  • wordpress 截图seo对网络推广的作用是什么?
  • 网站公司做网站网络seo优化平台
  • apache 配置网站b2b平台推广
  • 杭州网站建设教育机构找片子有什么好的关键词
  • 做网站的优势注册网站流程和费用
  • wordpress博客整站源码生意参谋官网
  • 网站广告怎么赚钱新手电商运营从哪开始学
  • 交互式网站是什么意思百度免费
  • 民治网站建设yihe kj关键词优化排名软件哪家好
  • 门户网站建设经验总结报告爱站网排行榜
  • 网站服务器买了后怎么做seo关键词排名优化推荐
  • 网站做违法的事情投诉软件外包公司有前途吗
  • 北京大兴最专业的网站建设公司推广app赚钱项目
  • 下载asp网站微信小程序开发工具
  • 天津网站建设首选津坤科技站长统计性宝app
  • 彩票开发网站建设应该要注意哪些问题永久不收费的软件app