Exploring abbreviated function templates
In Chapter 3, we learned about function templates as well as lambda expressions, including generic and template lambdas. A generic lambda is a lambda expression that uses auto
specified for one of its parameters. The result is a function object with a templated call operator. The same is produced as a result of defining a lambda template that has the advantage, over generic lambdas, of allowing better control over the types of the parameters. In C++20, this idea of using the auto
specifier for parameter types is generalized for all functions.
This introduces a simplified syntax of defining function templates, and functions that are defined in this way are called abbreviated function templates. We will see in this recipe how to use them.
How to do it…
You can define the following categories of abbreviated function templates in C++20:
- Unconstrained abbreviated function templates that use the
auto
specifier to define...