Fix ODR violation for plFactory
and avoid including it everywhere
#1452
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.