>Extern templates have existed since c++11 for that.
True, but ar least you don't need to write extern template class SomeTemplateClass<SomeType> in the header, and then explicitly instantiate it in the source. You can just write "export template class SomeTemplateClass<typename T> { ... };" (i.e., "export" followed by the definition) in the module file.
> Modules are compiler specific too, unfortunately.
Ah, I didn't realize, my bad.