Re: Compiler warning C4275
THis is a warning only, not an error.
You are exporting a class from a dll, but that class is derived from a base class which isn't being exported itself.
This isn't necessarily a problem, but it means that the users of your dll may not be able to directly call members of the base class.
that's why you get the issue about template classes
if the base class is a template class and it accesses a static a member function, then the code may end up being inlined, but the linker won't be able to resolve this because the user-code has no direct access to the members of the base class.
It doesn't have to be a base class btw, the same would be true for any member function of the base class which is defined inline in the header. (but this is typically Always true for templated classes).