【文件属性】:
文件名称:Mastering the C++17 .pdf
文件大小:2.41MB
文件格式:PDF
更新时间:2021-01-17 12:17:41
C++ 17 STL
The C++ language has a long history, dating back to the 1980s. Recently it has undergone a renaissance, with major new features being
intro
duced in 2011 and 2014. At press time, the C++17 standard is just around the corner.
C++11 practically doubled the size of the standard library, adding such headers as , , and . C++17 doubles the
library again, with additions such as , , and . A programmer who’s been spending time writing code instead of
watching the standardization process might fairly feel that the standard library has gotten away fromhim--that there’s so many new things in the
library that he'll never be able to master the whole thing, or even to sort the wheat fromthe chaff. After all, who wants to spend a month
reading technical documentation on std::locale and std::ratio , just to find out that they aren't useful in your daily work?
In this book, I'll teach you the most important features of the C++17 standard library. In the interest of brevity, I omit some parts, such as the
aforementioned ; but we'll cover the entire modern STL (every standard container and every standard algorithm), plus such
imp
ortant topics as smart pointers, randomnumbers, regular expressions, and the new-in-C++17 library.
I'll teach by example. You'll learn to build your own iterator type; your own memory allocator using std::pmr::memory_resource ; your own
thread pool using std::future .
I'll teach concepts beyond what you'd find in a reference manual. You'll learn the difference between monomorphic, polymorphic, and generic
algorithms (Chapter 1 , Classical Polymorphism and Generic Programming ); what it means for std::string or std::any to be termed a
"vocabulary type"(Chapter 5 , Vocabulary Types ); and what we might expect fromfuture C++ standards in 2020 and beyond.
I assume that you are already reasonably familiar with the core language of C++11; for example, that you already understand how to write
class and function templates, the difference between lvalue and rvalue references, and so on.