The XML added requirements which had multiple extensions be required.
This broke the existing autogen because it assumed there would only
be one extension required at a time. The fix is easy, split the
requirement string into a list then add it to the list of requirements.
Some alias types are not pure promotional types, and need to be excluded from the
code which replaces types with their alias.
This may be a stopgap solution for a larger underlying problem of not being able to
determine if an alias is promoted or not.
The autogen accidentally took a reference instead of a copy, so all the aliases
were using the same data as the base type, leading to incorrect macro guards.
In addition, any aliased function would use the base funciton's types, leading
to incompatibilities when compiling with older headers. The chosen solution is
to always use the alias type if it exists.
Lastly, NVX was added to a blacklist, no functions from NVX extensions will be
generated, since they are experimental in nature.
- Replaced GenericFeaturesPNextNode's set function with a template constructor.
- Moved validation asserts for extension feature structs into source.
- Dispatch table now generates in UTF-8.