I just learned that C++20 provides three ways of applying constraints to a template:
- Requires Clause
- Trailing Requires Clause
- Constrained Template Parameter
I successfully used constrained template parameters and I tend to prefer that syntax. Still I wonder why there are three ways defined in the standard.
Are there fundamental technical differences? Do these flavors have unique advantages or disadvantages (other than syntactical appearance)?