仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3727|回复: 8
打印 上一主题 下一主题

[C++基础] Linux教程之C++14新特征总结

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-16 11:05:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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使编写以下语句成为大概:
  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:13 | 只看该作者
你一开始永远也看不到所有.但总的大纲,你是清楚的.不是吗?
透明 该用户已被删除
板凳
发表于 2015-1-24 19:20:17 | 只看该作者
比如..C++比较难学,但你可以学学JAVA, JAVA倒是好学好用, 而且还能帮助你掌握面向对象的思维. 当然也很适合做出东西.
简单生活 该用户已被删除
地板
发表于 2015-2-2 13:40:42 | 只看该作者
C++有着很多对C语言修改的地方,这些修改犹如美国英语对英国英语的修改一样,使问题变得方便易懂!规范C++程序已经是刻不容缓的事情,既然C++取代C是趋势,就该加快这种步伐。
小妖女 该用户已被删除
5#
发表于 2015-2-7 22:25:48 | 只看该作者
C++有着很多对C语言修改的地方,这些修改犹如美国英语对英国英语的修改一样,使问题变得方便易懂!规范C++程序已经是刻不容缓的事情,既然C++取代C是趋势,就该加快这种步伐。
再现理想 该用户已被删除
6#
发表于 2015-2-23 16:43:44 | 只看该作者
可以说是C++的核心,相对来说也比较难以理解,因为这些技术很多都是面向于写库的人,初学C++的人很难用得上。
山那边是海 该用户已被删除
7#
发表于 2015-3-7 09:50:07 | 只看该作者
尽善尽美。别太得意,尽管你已经是高手。不要认为解决一个问题就OK,实现了一个功能就了事,问下自己得解决方法是不是最简单得,最优雅得,最容易被理解,最通用得......。
因胸联盟 该用户已被删除
8#
发表于 2015-3-14 23:41:58 | 只看该作者
之前一直都没有怎么这两个库,特别是vector,一直被难缠的数组死死拉着,而vector正在逐步取代数组的地位,这一点我也深深体会到,在我们项目的封装模块中
灵魂腐蚀 该用户已被删除
9#
发表于 2015-3-21 18:06:13 | 只看该作者
尽善尽美。别太得意,尽管你已经是高手。不要认为解决一个问题就OK,实现了一个功能就了事,问下自己得解决方法是不是最简单得,最优雅得,最容易被理解,最通用得......。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-13 14:26

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表