Automatically instantiate aliased container templates #108
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.
This PR adds support for two kinds of aliases:
QVector<QRgb>
now resolves properly toQVector<unsigned int>
. Both C++ types will use the same wrapper, so the former container is no longer instantiated separately, as required by Generic pseudo-instantiation macro for container wrapper types #102.QObjectList
now resolves properly toQList<QObject *>
. Consequently, the wrapper forQObject::children()
will no longer return a raw pointer to the container after this PR, as long as the appropriate alias is defined in the config file:Due to recent changes, the type database now has separate rule entries for actual C++ containers (e.g.
QList<QWindow *>
) and their template-less aliases (e.g.Container_QList_QWindow_X_
). This shouldn't affect any existing bindings; in particular, typedefs in the C++ wrappers are unaffected because they are populated byGraph::Alias
instead.