It’s not standardised. Some use .tcc (t = template, cc = C++ source),some use .icc (i = included, cc = C++ source), some use .h (but that makes it indistinguishable from “real” headers), some just don’t use an extra file at all. It’s usually a file that contains implementations of templates declared in a header that then #includes the .tcc (or whatever) file. But as there is no standard nor a general consense about this, it could be anything else as well.It’s just an artifact of the need to have template definitions visible in all translation units that use them with most compilers:It’s not standardised. Some use .tcc (