Writing Easy-to-Read Templates
Up until now, we have seen many features that we can use to write powerful templates that allow us to create high-level abstractions over the specific problems we face.
But, as usual, code is more often read than written, and we should optimize for readability: the code should express the intentions of the code more than what operation is achieved.
Template code can sometimes make that hard to do, but there are a few patterns that can help.
Type Alias
Type aliases allow the user to give a name to a type. They are declared with using name = type.
After the declaration, everywhere Name is used is going to be equivalent to having used Type.
This is very powerful for three reasons:
It can give a shorter and more meaningful name to complex types
It can declare a nested type to simplify access to it
It allows you to avoid having to specify the typename keyword in front of a dependent type
Let's see examples for these two points.
Imagine we have a type, UserAccount, which contains...