I have read the [Why can templates only be implemented in the header file?](https://stackoverflow.com/questions/495021/why-can-templates-only-be-implemented-in-the-header-file) and [Why can’t I separate the definition of my templates class from its declaration and put it inside a .cpp file?](https://isocpp.org/wiki/faq/templates#templates-defn-vs-decl)

If I create the templates then I am to provide access also to their `cpp`-files additionally to their `h`-files, or write the definitions directly in the header file.

Therefore, if I want to allow to use fully my templates in other applications, then I can't hide their implementation from outside eyes (*for protection of intellectual property*). Am I right?