Patch for Andrew Niefer.
For the symbol table: this patch contains the current (incomplete) implementation for matching template arguments and ranking specializations. This still needs work before you can properly instantiate a template and get the correct specialization. Implicit instantiation of template functions has not really been started, but these changes are an integral part of that as well.
The relevant functions are :
ParserSymbolTable.matchTemplatePartialSpecialization
ParserSymbolTable.orderSpecializations
ParserSymbolTable.deduceTemplateArguments
ParserSymbolTable.deduceTemplateArgument
ParserSymbolTable.classTemplateSpecializationToFunctionTemplate
ParserSymbolTable.transformFunctionTemplateForOrdering
Templates are going on the back burner for a little bit, so this is it for a while.
|