We are in the process of designing a new C++ library and decided to go with a template-based approach along with some specific partial template specialisations for corner ca
C++ Shared Library with Templates: Undefined symbols error Some answers there cover this topic. To sum up short: it is possible if you force to instantiate templates in shared library code explicitly. It will require explicit specification for all used types for all used templates on shared lib side, though.