C++11各种资源及个人见解
2013-01-31 09:52 yu_yu 阅读(653) 评论(0) 编辑 收藏 举报本文是专门针对C++新特性的见解,融合自己学习使用过程中的各种曲折。当然,如果你是反C++联盟或者各种逆反党人士均可以跳过 。其中,肯定有许多不恰当的地方,有很多偏见,但还望各位看官秉持该打就打,该喷就喷的原则,看不惯就就拍吧!
首先,我力图以一种分类形式展现,把语言特性、库和各种最佳实践、Idiom方法介绍给大家。
这里是关于C++11的一个资源清单,如果大家英文好,可以尽情阅读。正如Stroustrup 的观点:C++11 是一门新的语言——一个更好的 C++。C++11比C++03更学院派,而且增加了这么多特性也让人摸不着头脑,这些是问题吗?对于把C++看作信仰的人来说——NO,C++ is my lover!
对于大多数C++er来说,lambda,nullptr,rvalue-ref,decltype,variadic template这些语言特性都是为库作者设计的,达到立竿见影省力省时的好处。如果涉及到stl的代码,仅仅是重新编译一次,就可以得到性能的提升。不喜欢尝试变化的人,完全无视新语法就是了,为什么这么惧怕呢,要知道,不破不立!
这里是C++11的群号:165666547,如果有兴趣来和大家分享,提问都欢迎加入。
WiKI上关于C++11,大家一定得注意看目录,可以有效的帮助大家从运行时性能提高、编译时间提快、以及功能上增强来了解语言核心机制的变化,还有标准库中的扩展,这些都十分有利于开发者。
C++之父对C++11做出的FAQ,这个大家一定的看看,我想,也不需要做出任何解释,干净、入门、利落!
Welcome Back to C++ (Modern C++),是的,MS出的一篇关于如何更好的使用C++来改善我们的代码,GO,骚年们。
语言设计就是库设计,库设计就是语言设计
C++语法这么庞杂,C++的库这么繁多。最大的原因是大家都追求一种运行时高效而使用又特别简单的方式,所以各家对别人的库不感冒,认为还不如自己来写!一门语言好用与否,很大程度决定于这么语言的库是否易用。C++11在这方面可谓下足功夫,为了使库工作者开发出更方便简单的接口,增加了大量特性auto、decltype、variable template,etc,同时为了把诟病已久的临时对象拷贝问题解决,引入了move语意。这些都是C++界那些老头子的功劳,还是非常值得肯定表扬~乌拉
库:
1. LINQ for C++
一个用C++11实现的LINQ语法的库,用于循环处理数据。有点函数式编程的感觉,库作者是MS的大牛Marius Bancila。
这是其中的example,咋样,玩起来很飘逸吧。我的下一个ProtoBuf for SQL就会采用类似的语法,cool~
#include "cpplinq.hpp" void computes_a_sum () { using namespace cpplinq; int ints[] = {3,1,4,1,5,9,2,6,5,4}; auto result = from_array (ints) >> where ([](int i) {return i%2 ==0;}) // Keep only even numbers >> sum () // Sum remaining numbers ; }
一个利用C++11中variable template实现的日志库,该库线程安全,多输出IO策略,最主要的是足够小巧,不像boost、google的日志库庞大。
语言:
1. 右值引用
http://www.cnblogs.com/tingshuo/archive/2013/01/21/2870035.html