After reading this article Storing C++ template function definitions in a .CPP file, I know that the definition of a class that uses template has to be written in the header file in some way. So a client user can use it by importing the header files. Doesn't this mean the complete implementation details are revealed to the user? Does this also mean a library written with template must be provided in an open-source way?
Thanks for helping clarify it.