© The Author(s), under exclusive license to APress Media, LLC, part of Springer Nature 2023
I. Horton, P. Van WeertBeginning C++23https://doi.org/10.1007/978-1-4842-9343-0_21

21. Constrained Templates and Concepts

Ivor Horton1   and Peter Van Weert2
(1)
Stratford-upon-Avon, Warwickshire, UK
(2)
Kessel-Lo, Belgium
 

Templates define parameterized families of C++ entities such as functions (Chapter 10) or class types (Chapter 17). In practice, templates are mostly parameterized on seemingly arbitrary types. Yet most templates cannot be instantiated for just any type; at least not without error. The binary std::max<>() function template, for instance, can only be instantiated for types that support the < operator. And the std::vector<> and std::optional<> ...

Get Beginning C++23: From Beginner to Pro now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.