本章主要介绍了通过一些C++11的特性简化代码,使代码更方便、简洁和优雅。首先讨论了自动类型推断的两个关键字auto和decltype,通过这两个关键字可以化繁为简,使我们不仅能方便地声明变量,还能获取复杂表达式的类型,将二者和返回值后置组合起来能解决函数的返回值难以推断的难题。
模板别名和模板默认参数可以使我们更方便地定义模板,将复杂的模板定义用一个简短更可读的名称来表示,既减少了烦琐的编码又提高了代码的可读性。
range-based for循环可以用更简洁的方式去遍历数组和容器,它还可以支持自定义的类型,只要自定义类型满足3个条件即可。
初始化列表和统一的初始化使得初始化对象的方式变得更加简单、直接和统一。
std::function不仅是一个函数语义的包装器,还能绑定任意参数,可以更灵活地实现函数的延迟执行。
lambda表达式能更方便地使用STL算法,就地定义的匿名函数免除了维护一大堆函数对象的烦琐,也提高了程序的可读性。
tuple元组可以作为一个灵活的轻量级的小结构体,可以用来替代简单的结构体,它有一个很好的特点就是能容纳任意类型和任意数量的元素,比普通的容器更灵活,功能也更强大。但是它也有复杂的一面,tuple的解析和应用往往需要模板元的一些技巧,对使用者有一定的要求。