"C 17新特性及STL应用指南"
《C++最新STL标准库》一书介绍了C++ 11、C++ 14和C++ 17标准为C++语言添加的许多新特性。这些新特性使得现在的C++与10年前的C++已经完全不同。尽管C++标准的目的不只是为了规范语言,而是为了让编译器理解相应的语义以更好地支持C++标准模板库(STL),但本书中的例子展示了如何充分利用STL。本书的第1章我们需要了解一些重要的新语言特性,掌握这些特性有助于编写可读性高、可维护性强、表达清晰的代码。 首先,我们将了解如何单独访问组对、元组和结构化绑定的数据结构的成员。C++标准为我们提供了新的语法,允许我们以更简洁的方式访问数据结构的成员,使代码更易读。 其次,我们将学习如何使用新的if和switch语法来限制变量的作用范围。C++标准中引入了新的作用域限定符,使得我们能够在if和switch语句块中定义局部变量,避免了全局变量的滥用,提高了代码的可维护性。 接下来,我们将了解新的括号初始化语法。虽然C++11之前的括号初始化语法在某些情况下存在歧义,但C++11引入了新的规则来修复这个问题。新的括号初始化语法使得初始化对象更加简洁明了,提高了代码的可读性。 然后,我们将学习模板类实例类型自动推断的功能。C++标准中的模板类实例类型现在可以从构造函数的参数中自动推断出来。这意味着我们可以更方便地使用不同类型的模板类实例,并且不同类型的特化将会产生不同的代码。此外,引入了constexpr-if语法,进一步简化了对模板类的特化。 在处理模板函数的可变参数包时,折叠表达式的引入使得代码编写更加容易。折叠表达式为循环和递归操作提供了更简洁的语法,使得处理可变参数数量的函数变得更加简单和易读。 最后,在只有头文件的库中使用声明内联变量来定义全局静态对象变得更加舒服。之前的C++标准中,定义全局静态对象需要使用独立编译单元,但新的标准允许我们在头文件中使用声明内联变量,从而实现更加方便和统一的全局静态对象定义。 总而言之,《C++最新STL标准库》一书对C++ 11、C++ 14和C++ 17引入的新特性进行了介绍,并通过例子展示了如何充分利用STL。通过学习这些新特性,我们可以编写更加可读、可维护和表达清晰的代码。
剩余325页未读,继续阅读