C++14 C++编程爱好者看过来
前年10月的时候,C++这个程序语言的新一代标准C++11终于定案了!虽然目前应该是还没有哪个编译器真的完整支援,不过其中像是auto和lambda expression等功能,笔者现在也都用得很高兴了~
而现在,下一代的C++标准,也就是目前命名为C++ 14的委员会草案(Committee Draft)在前一阵子也已经出来了~目前相关的数据应该还不多,不过网络上还是可以看到相关的数据。首先,可以参考isocpp.org上的《Trip Report: ISO C++ Spring 2013 Meeting》这篇帖子,而该网站博客也有很多相关帖子;另外在Meeting C++上,也有一系列的帖子,在讨论C++ 14的东西、并整理了相关的paper。
基本上,东西满多的,Heresy 也没有全部看完。其中比较吸引Heresy 注意的,包括了:
平行计算
[ N3530 ] Leveraging OpenMP infrastructure for language level parallelisation
提供语法层级的OpenMP平行化,可以透过parallelfor()这样的函数、来将循环平行化。
[ N3554 ] A Parallel Algorithms Library
平行化演算法函数库!以后像是std::sort()这类现成的演算法,可以直接平性化来处理了~看起来甚至可能会有GPGPU的版本,可以直接用呢!
向量化
[ N3561 ] Semantics of Vector Loops
提供simd_for()这类的函数,来让循环可以透过SIMD(维基百科)指令集加速。
[ N3571 ] Add SIMD Computation to the Library
提供高阶的SIMD计算函数库。
[ N3559 ] Generic Lambda Expression。
基本上是C++11 Lambda expression的延伸,让lambda expression可以使用auto来当作参数型别,借此来增加lambda expression的使用弹性。
[ N3505 ]基于Boost FileSystem v3的File System,可以用来做基本的文件、目录的管理。
[ N3527 ]基于Boost::Optional的新类别,可以用来处理「可能没有值」的状态,个人觉得用在return的时候还满实用的。(有点类似回传的不是值,而是指针)
网络相关
[ N3555 ] URI Library
[ N3565 ] IP Address Design Constraints / [ N3603 ] – A Three-Class IP Address proposal
[ N3572 ] Unicode Support in the Standard Library
[ N3611 ] A Rational Number Library for C++
[ N3612 ] Desiderata of a C++11 Database Interface
当然,其他还有相当多的功能,应该也都是满实用的,不过Heresy 就不全列了(有的Heresy 也看不懂)。
而实际上,虽然不确定最后C++14 定案的时候,会剩下那些东西,不过可以看到在目前C++14 的草案里面,针对平行化/向量化计算,都有做出改进;而同时,针对网络部分,看来也有打算增加相关功能了~接下来,就希望C++ 标准语法、STL 的功能可以越来越完整吧~
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
