Book Image

C++20 STL Cookbook

By : Bill Weinman
Book Image

C++20 STL Cookbook

By: Bill Weinman

Overview of this book

Fast, efficient, and flexible, the C++ programming language has come a long way and is used in every area of the industry to solve many problems. The latest version C++20 will see programmers change the way they code as it brings a whole array of features enabling the quick deployment of applications. This book will get you up and running with using the STL in the best way possible. Beginning with new language features in C++20, this book will help you understand the language's mechanics and library features and offer insights into how they work. Unlike other books, the C++20 STL Cookbook takes an implementation-specific, problem-solution approach that will help you overcome hurdles quickly. You'll learn core STL concepts, such as containers, algorithms, utility classes, lambda expressions, iterators, and more, while working on real-world recipes. This book is a reference guide for using the C++ STL with its latest capabilities and exploring the cutting-edge features in functional programming and lambda expressions. By the end of the book C++20 book, you'll be able to leverage the latest C++ features and save time and effort while solving tasks elegantly using the STL.
Table of Contents (13 chapters)

Chaper 1: New C++20 Features

This chapter concentrates on some of the more compelling features that C++20 adds to the STL. You can use some of these right away. Others may need to wait for implementation in your favorite compiler. But in the long run, I expect you'll want to know about most of these features.

There are a lot of new additions to the C++20 standard, far more than we could cover here. These are a few that I think will have long-term impact.

In this chapter we will cover the following recipes:

  • Format text with the new format library
  • Use compile-time vectors and strings with constexpr
  • Safely compare integers of different types
  • Use the "spaceship" operator <=> for three-way comparisons
  • Easily find feature test macros with the <version> header
  • Create safer templates with concepts and constraints
  • Avoid re-compiling template libraries with modules
  • Create views into containers with ranges

This chapter...