仓酷云
标题:
Linux教程之C++14新特征总结
[打印本页]
作者:
仓酷云
时间:
2015-1-16 11:05
标题:
Linux教程之C++14新特征总结
Linux的常用命令find,察看man文档,初学者一定会觉得太复杂而不原意用,但是你一旦学会就爱不释手。
C++14这一继C++11以后的新的C++尺度已被正式同意,正在向ISO提交,将于年内公布。C++之父BjarneStroustrup说道,只管与C++11比拟,C++14的改善“成心做的对照小”,可是仍旧为用户“带来了极年夜的便利”,是完成使C++“对老手更加友爱”这一方针的步骤之一。
在C++的工夫表中,C++14按企图是一个小版本,完成制订C++11尺度的残剩事情,目标是使C++成为一门更明晰、更复杂和更疾速的言语。新的言语特征留到了将来的C++17尺度中。
登录/注册后可看大图
20140910233020630035.PNG
(55.56 KB, 下载次数: 6)
下载附件
保存到相册
Linux教程之C++14新特征总结
2015-1-16 11:05 上传
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,就意味着更快的开发效率,等更多关于软件本身或者说操作系统本身的理解。
作者:
小魔女
时间:
2015-1-18 07:47
你一开始永远也看不到所有.但总的大纲,你是清楚的.不是吗?
作者:
透明
时间:
2015-1-24 19:20
比如..C++比较难学,但你可以学学JAVA, JAVA倒是好学好用, 而且还能帮助你掌握面向对象的思维. 当然也很适合做出东西.
作者:
简单生活
时间:
2015-2-2 13:40
C++有着很多对C语言修改的地方,这些修改犹如美国英语对英国英语的修改一样,使问题变得方便易懂!规范C++程序已经是刻不容缓的事情,既然C++取代C是趋势,就该加快这种步伐。
作者:
小妖女
时间:
2015-2-7 22:25
C++有着很多对C语言修改的地方,这些修改犹如美国英语对英国英语的修改一样,使问题变得方便易懂!规范C++程序已经是刻不容缓的事情,既然C++取代C是趋势,就该加快这种步伐。
作者:
再现理想
时间:
2015-2-23 16:43
可以说是C++的核心,相对来说也比较难以理解,因为这些技术很多都是面向于写库的人,初学C++的人很难用得上。
作者:
山那边是海
时间:
2015-3-7 09:50
尽善尽美。别太得意,尽管你已经是高手。不要认为解决一个问题就OK,实现了一个功能就了事,问下自己得解决方法是不是最简单得,最优雅得,最容易被理解,最通用得......。
作者:
因胸联盟
时间:
2015-3-14 23:41
之前一直都没有怎么这两个库,特别是vector,一直被难缠的数组死死拉着,而vector正在逐步取代数组的地位,这一点我也深深体会到,在我们项目的封装模块中
作者:
灵魂腐蚀
时间:
2015-3-21 18:06
尽善尽美。别太得意,尽管你已经是高手。不要认为解决一个问题就OK,实现了一个功能就了事,问下自己得解决方法是不是最简单得,最优雅得,最容易被理解,最通用得......。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2