[...]
If we wanted to represent “Hermitian matrix” or “Triangular matrix” in our design, without writing a complicated data structure that the algorithms would never use anyway, we would have needed some way to “tag” a matrix with mathematical properties. For example:
> Have you considered tag dispatching for algorithm overloads?
We considered this idea. You can see a brief discussion at the end of P1673 (“Options and votes”). We actually want to bring it up for a vote.
The “tag dispatching” approach calls for a way for users to add their own tags, since library can’t possibly cover all mathematical properties of interest. Thus, many (perhaps all) of the functions would need to be customization points. That would add a LOT of customization points to the Standard Library. LEWG and LWG probably won’t accept that without a strong argument.