仓酷云 发表于 2015-1-16 11:05:00

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

你一开始永远也看不到所有.但总的大纲,你是清楚的.不是吗?

透明 发表于 2015-1-24 19:20:17

比如..C++比较难学,但你可以学学JAVA, JAVA倒是好学好用, 而且还能帮助你掌握面向对象的思维. 当然也很适合做出东西.

简单生活 发表于 2015-2-2 13:40:42

C++有着很多对C语言修改的地方,这些修改犹如美国英语对英国英语的修改一样,使问题变得方便易懂!规范C++程序已经是刻不容缓的事情,既然C++取代C是趋势,就该加快这种步伐。

小妖女 发表于 2015-2-7 22:25:48

C++有着很多对C语言修改的地方,这些修改犹如美国英语对英国英语的修改一样,使问题变得方便易懂!规范C++程序已经是刻不容缓的事情,既然C++取代C是趋势,就该加快这种步伐。

再现理想 发表于 2015-2-23 16:43:44

可以说是C++的核心,相对来说也比较难以理解,因为这些技术很多都是面向于写库的人,初学C++的人很难用得上。

山那边是海 发表于 2015-3-7 09:50:07

尽善尽美。别太得意,尽管你已经是高手。不要认为解决一个问题就OK,实现了一个功能就了事,问下自己得解决方法是不是最简单得,最优雅得,最容易被理解,最通用得......。

因胸联盟 发表于 2015-3-14 23:41:58

之前一直都没有怎么这两个库,特别是vector,一直被难缠的数组死死拉着,而vector正在逐步取代数组的地位,这一点我也深深体会到,在我们项目的封装模块中

灵魂腐蚀 发表于 2015-3-21 18:06:13

尽善尽美。别太得意,尽管你已经是高手。不要认为解决一个问题就OK,实现了一个功能就了事,问下自己得解决方法是不是最简单得,最优雅得,最容易被理解,最通用得......。
页: [1]
查看完整版本: Linux教程之C++14新特征总结