The hidden compile-time cost of <insert almost any C++ feature>
C++ is the opposite of simplicity and clarity in code.
In many cases it's possible to only declare the template in the header, explicitly instantiate it with a bunch of types in a single TU, and just find those definitions via linker.