官术网_书友最值得收藏!

  • Mastering the C++17 STL
  • Arthur O'Dwyer
  • 332字
  • 2021-07-08 10:20:17

Preface

The C++ language has a long history, dating back to the 1980s. Recently it has undergone a renaissance, with major new features being introduced 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 <tuple>, <type_traits>, and <regex>. C++17 doubles the library again, with additions such as <optional>, <any>, and <filesystem>. 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 from him--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 from the 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 <type_traits>; but we'll cover the entire modern STL (every standard container and every standard algorithm), plus such important topics as smart pointers, random numbers, regular expressions, and the new-in-C++17 <filesystem> 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 from future 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.

主站蜘蛛池模板: 定日县| 马山县| 大同县| 涪陵区| 新龙县| 茌平县| 上栗县| 余姚市| 龙南县| 富锦市| 嘉峪关市| 离岛区| 丘北县| 汝城县| 康保县| 大姚县| 辽阳县| 苍梧县| 衡水市| 易门县| 龙海市| 射洪县| 襄垣县| 资兴市| 同心县| 松溪县| 韶山市| 靖州| 余姚市| 吐鲁番市| 邓州市| 永登县| 镇沅| 和龙市| 望城县| 上林县| 乐业县| 疏勒县| 五寨县| 鄂托克旗| 乌什县|