- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第
详解C++14中返回类型推导的使用
使用C++14中的auto返回类型,编译器将尝试自动推导(deduce)返回类型:
namespace{
intxx=1;
autof(){returnxx;}//returntypeisint
constautof3(){returnxx;}//returntypeisconstint
automultiply(inta,intb){return(a*b);}
autoincrease(inta){a++;returna;}
}//namespace
inttest_auto_14_1()
inta=4,b=5;
autov1=multiply(a,b);
std::coutv1:v1\n;//v1:20
autov2=increase(a);
std::coutv2:v2\n;//v2:5
v2=10;
std::couta:a\n;//a:10
return0;
}
在C++14中使用lambda,可以使用auto推导其返回类型,这使得返回推导引用或右值引用成为可能:
namespace{
templatetypenameT
autof2(Tt){returnt;}
}//namespace
inttest_auto_14_2()
//returnsareferencetoadeducedtype
autog=[](autox)-auto{returnf2(x);};
inty=123;
intz=g(y);//referencetoy
std::coutz:z\n;//z:123
z=456;
std::couty:y\n;//y:456
return0;
}
decltype(auto)类型说明符(type-specifier)也像auto一样推导出一个类型。但是,它会在保留其引用和cv限定符(cv-qualifier)的同时推导返回类型,而auto则不会:
namespace{
decltype(auto)increase(inta){a++;returna;}
intxxx=123;
autof(constinti){returni;}//returntypeisint
static_assert(std::is_sameconstint,decltype(f(xxx))::value==0);
static_assert(std::is_sameint,decltype(f(xxx))::value==1);
decltype(auto)g(constinti){returni;}//returntypeisconstint
static_assert(std::is_sameconstint,decltype(g(xxx))::value==1);
intxx=1;
decltype(auto)f2(){returnxx;}//returntypeisint,sameasdecltype(x)
static_assert(std::is_sameint,decltype(f2())::value==1);
decltype(auto)f3(){return(xx);}//returntypeisint,sameasdecltype((x))
static_assert(std::is_sameint,decltype(f3())::value==1);
//constdecltype(auto)f4(constint){returnxx;}//constdecltype(auto)isanerror,decltype(auto)mustbeusedonitsown
//error:“decltype(auto)”不能与任何其他类型说明符组合
//autof5(boolflag){
//if(flag)return1;
//elsereturn1.0;//error:所有返回表达式必须推导为相同类型:以前为“int”
//class
您可能关注的文档
最近下载
- 最新初中地理新课程标准考试题七套(含答案).docx VIP
- 掺镱光纤预制棒、掺镱有源光纤及其制备方法.pdf VIP
- 2025年辽宁省事业单位招聘考试公共基础知识考试试题库及一套完整答案详解.docx VIP
- 人教版四年级上册数学第三单元《角的度量》测试卷推荐.docx VIP
- 党志愿书空白表格.doc VIP
- 强直性脊柱炎的护理查房PPT课件.pptx VIP
- 项目提成管理制度.docx VIP
- 2025中国南水北调集团新能源投资有限公司第二批社会招聘笔试备考题库及答案解析.docx VIP
- 新外研版高中英语选择性必修2Unit5课文翻译.pdf VIP
- 广西示范性高中2024-2025学年高二上学期期中调研测试数学试题(解析版).docx VIP
文档评论(0)