Inconsistency imposes mental friction into a developer’s work.
Writing good template libraries in C++ is a delicate balance between exercising the considerable power afforded by template programming and making overly complex and undiscoverable interfaces that confound users. Kevlin Henney has suggested a relationship that captures the essence of this balance, which I call Henney’s Hypothesis.
For each additional [required] template parameter, the potential number of users is halved.
The “[required]” part is my own humble addition to the hypothesis. I think this is an important modification since it’s the number of template parameters a user is required ...