The private members of plFactory were only conditionally defined in plFactory.h, which is an ODR violation and gives warnings with GCC for example (although apparently it has never caused any issues in practice). I'm not sure why it was done that way (perhaps to reduce header pollution very slightly?), but it seems safe to define everything unconditionally.
Regardless, to avoid pulling in plFactory in many places where it's not needed, I also adjusted plCreatable.h to not automatically include plFactory.h anymore. This required removing a couple of plCreatable methods, but they weren't used anywhere and are trivial to replace.
Touching the core plCreatable headers, part two.
The private members of
plFactory
were only conditionally defined in plFactory.h, which is an ODR violation and gives warnings with GCC for example (although apparently it has never caused any issues in practice). I'm not sure why it was done that way (perhaps to reduce header pollution very slightly?), but it seems safe to define everything unconditionally.Regardless, to avoid pulling in
plFactory
in many places where it's not needed, I also adjusted plCreatable.h to not automatically include plFactory.h anymore. This required removing a couple ofplCreatable
methods, but they weren't used anywhere and are trivial to replace.