Elements of Modern C++ Style

译自:http://herbsutter.com/elements-of-modern-c-style

“C++11 feels like a new language.” — Bjarne Stroustrup

C++11标准提供了很多新特性。本文特别的而且仅仅专注于那些使得C++11相比于C++98来说确实感觉像一门新语言的特性,因为:

  • 它们改变了编写C++代码时所要使用的风格和惯用手法,通常还包括设计C++库的方式。例如,你将会看到更多的智能指针作为参数和返回值,函数也会通过值的方式返回大对象。
  • 它们被如此普遍的使用,以至于你会在大多数的代码示例中看见它们。例如,几乎在每5行的现代C++代码示例中你就会看见auto的身影。

C++11的特性也要好好的使用,但先使用好这些,因为它们是使得C++11代码整洁、安全(和现代主流语言一样整洁和安全)和快速的最普遍的特性,再加上C++的传统的,如金属般的性能,使之一如既往的强大。

说明:

  • 如同Strunk & White,本文特意专注于简洁的总结指导,而不是为了提供详尽的原理阐述和pro/con分析;这将在其它的文章中探究。
  • 这是一份保持更新的文档。你可以在最后随时间变化和添加的列表中看见。

C++ Has Become More Pythonic

译自:http://preshing.com/20141202/cpp-has-become-more-pythonic

近些年C++ 发生了很多变化。最新的两个版本,C++11C++14引入了如此多的新特性,正如Bjarne Stroustrup所说的:“它感觉就像一门新的语言”

确实是这样。现代C++形成了一种全新的编程风格——使我不得不注意到它带有的更多Python的味道。基范围的for循环、类型推导、vector和map的初始化、lambda表达式。随着你更深入的探索现代C++,你越会发现Python的痕迹在里面。

现代C++直接受Python的影响吗?或者仅仅是Python在C++之前使用了这些设计?由你来判断。