|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Linux的常用命令find,察看man文档,初学者一定会觉得太复杂而不原意用,但是你一旦学会就爱不释手。
C++14这一继C++11以后的新的C++尺度已被正式同意,正在向ISO提交,将于年内公布。C++之父BjarneStroustrup说道,只管与C++11比拟,C++14的改善“成心做的对照小”,可是仍旧为用户“带来了极年夜的便利”,是完成使C++“对老手更加友爱”这一方针的步骤之一。
在C++的工夫表中,C++14按企图是一个小版本,完成制订C++11尺度的残剩事情,目标是使C++成为一门更明晰、更复杂和更疾速的言语。新的言语特征留到了将来的C++17尺度中。
C++14的次要特征能够分为三个范畴:Lambda函数、constexpr和范例推导。
Lambda函数
C++14的泛型Lambda使编写以下语句成为大概:- autolambda=[](autox,autoy){returnx+y;};
复制代码 而另外一方面,C++11请求Lambda参数利用详细的范例声明,好比:- autolambda=[](intx,inty){returnx+y;};
复制代码 别的,新尺度中的std::move函数可用于捕捉Lambda表达式中的变量,这是经由过程挪动工具而非复制或援用工具完成的:- std::unique_ptrptr(newint(10));autolambda=[value=std::move(ptr)]{return*value;};
复制代码 constexpr
在C++11中,利用constexpr声明的函数能够在编译时实行,天生一个值,用在必要常量表达式的中央,好比作为初始化模板的整形参数。C++11的constexpr函数只能包括一个表达式,C++14抓紧了这些限定,撑持诸如if和switch等前提语句,撑持轮回,个中包含基于区间(range)的for轮回。
范例推导
C++11仅撑持Lambda函数的范例推导,C++14对其加以扩大,撑持一切函数的前往范例推导:
autoDeducedReturnTypeFunction();
由于C++14是强范例言语,有些限定必要思索:
- 假如一个函数的完成中有多个前往语句,这些语句必定要推导出一样的范例。
- 前往范例推导能够用在前向声明中,可是在利用它们之前,翻译单位中必需可以失掉函数界说。
- 前往范例推导能够用在递回函数中,可是递回挪用必需以致少一个前往语句作为先导,以便编译器推导出前往范例。
C++14带来的另外一个范例推导方面的改善是decltype(auto)语法,它撑持利用与auto一样的机制盘算给定表达式的范例。auto和decltype在C++11中就已呈现了,可是它们在推导范例时利用了分歧的机制,这大概会发生分歧的了局。
C++14中的其他改动包含能够声明变量模板,撑持利用0b或0B前缀来声明二进制字面常量。InfoQ已先容过C++14中大概损坏C++11程序的其他小型修正。
支流C++编译器对新言语特征的撑持正在井井有条地开辟:Clang“完整完成了以后草案的一切内容”;GCC和VisualStudio也对C++14的新特征供应了一些撑持。
英文原文:C++14IsHere:SummaryofNewFeatures
学习linux,就意味着更快的开发效率,等更多关于软件本身或者说操作系统本身的理解。 |
|