bitdewy

Effective C++ 11

C++应该算是流行的编程语言中最复杂的(之一)。看看这篇文章 C++, Ruby, CoffeeScript: a visual comparison of language complexity 就知道C++ 相对于 Ruby 和 CoffeeScript 有多么复杂了。关于 C++ 还有段子:When your hammer is C++, everything begins to look like a thumb. (Steve Haflich in alt.lang.design, December 1994)。

也许正是因为 C++ 如此复杂,Scott Meyers 的 《Effective C++》才会受到如此的推崇,几乎在所有C++书籍的推荐名单上,这部专著都会位于前三名。甚至有人说C++程序员可以分成两类,读过Effective C++的和没读过的。可见 Effective C++ 的地位。

去年10月 ISO/IEC 发布了 C++11 编程语言标准,open standards 上可以找到标准草案 n3242 (PDF),(wiki 上显示最终标准是3290,不过鉴于标准文档动辄几百刀,况且几乎没有人会对着标准文档学习,大家还是看看草案就好了,相信差别不大),C++ 11 更像是一个全新的语言,学习 C++ 11 可以参考 Bjarne StroustrupC++0xFAQ ,不过还是很期待 Effective 系列,不知道大师 Scott Meyers 什么时候会再出 Effective C++ 11,4月份的时候 Scott MeyersC++ and Beyond 上发出了 Effective C++ 11 的初步想法(原文在这里),先睹为快吧:

  • Prefer auto to Explicit Type Declarations
  • Distinguish () and {} When Creating Objects
  • Remember that auto + { expr } == std::initializer_list
  • Prefer non-member begin/end to member versions
  • Declare std::thread Members Last in Classes
  • Be Wary of Default Capture Modes in Lambdas Escaping Member Functions
  • Prefer Emplacement to Insertion
  • Pass std::launch::async if Asynchronicity is Essential
  • Minimize use of Weak Atomics
  • Distinguish Rvalue References from Universal References
  • Assume that move operations are neither present nor cheap
  • Prefer Lambdas over Binders
  • Prefer Lambdas over Variadic Arguments to Threading Functions
  • Be Wary of Oversubscription
  • Apply std::forward when Passing Universal References
  • Prefer std::array to Built-in Arrays
  • Use std::make_shared Whenever Possible
  • Prefer Pass-by-Reference-to-const to Pass-by-Value for std::shared_ptrs
  • Pass by Value if You’ll Copy Your Parameter
  • Reserve noexcept for Functions with Wide Interfaces
  • For Copyable Types, View Move as an Optimization of Copy
  • Prefer enum classes to enums
  • Prefer nullptr to NULL and 0
  • Distinguish among std::enable_if, static_assert, and =delete

posted on 2012-06-24 10:50 bitdewy 阅读(813) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


公告

导航

<2012年7月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

统计

常用链接

留言簿

随笔档案

Interested human

搜索

最新评论

阅读排行榜

评论排行榜