More constexpr schema #234
Merged
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.
Additional changes on top of #227. The biggest difference is that I wrapped the
static constexpr
variables inconstexpr
functions to simplify the scoping and give them a nicer public name.The
...Schema.cpp
files still share a single static instance of the enum names. Callers of thegetEnumNames()
constexpr
functions will need to do something similar with a local variable (or a shared static if that makes sense) to use iterators on the array of names, otherwise each call togetEnumNames()
returns a new instance in a temporary variable, and the iterators don't match the container. If, OTOH, you are just plugging it into a template parameter or passing it as a single argument to another function, it should be fine to just substitute a call togetEnumNames()
for the reference to the statics_namesEnum
instance which #227 would have declared in the header.