Integrate template containers into namespace resolution
Opened this issue · 0 comments
The new namespace resolution maintains a tree of namespaces for regular types, so that when a type alias is made, its child types are aliased as well. Template containers are however excluded from this mechanism and their qualified name is still treated as a single unbreakable unit. This prevents "using namespace" clauses from being stored as symbollic links within the tree, and instead a string list of "using namespaces" is stored, so that they can be prepended one-by-one to encountered template types.
I propose a more robust solution: Move template containers from TypeSet root to Namespace, having multiple sets organized by namespace. Then, "using namespaces" can be converted to namespace pointers.
Since container templates (and string types) cannot affect header parser type discovery, but type and namespace discovery can affect what a container template's actual namespace really is, user types from the configuration need to be parsed and registered into the type set after all header parser passes except the FINAL pass.