仓酷云

标题: 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尺度中。



  C++14的次要特征能够分为三个范畴:Lambda函数、constexpr和范例推导。
 Lambda函数

  C++14的泛型Lambda使编写以下语句成为大概:
  1. autolambda=[](autox,autoy){returnx+y;};
复制代码
  而另外一方面,C++11请求Lambda参数利用详细的范例声明,好比:
  1. autolambda=[](intx,inty){returnx+y;};
复制代码
  别的,新尺度中的std::move函数可用于捕捉Lambda表达式中的变量,这是经由过程挪动工具而非复制或援用工具完成的:
  1. 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://www.ckuyun.com/) Powered by Discuz! X3.2