Patent ID: 8904370

Claim:
A computer-implemented method for an alternate type system for optimizing evaluation and use of meta-template instantiations, the method comprising: obtaining a source code; instantiating, using a processor, an element of the source code to form an instantiated element; identifying a meta-template within the instantiated element to form an identified meta-template; creating an entry for the identified meta-template in a first data structure, wherein the entry comprises a set of mapped entries, and wherein creating the entry comprises: locating a first name to form a located name; determining whether the located name is qualified; responsive to a determination that the located name is qualified, determining whether leading qualifiers of the located name represent a meta-template instantiation, a member of the meta-template or an argument to the meta-template; responsive to a determination that the leading qualifiers of the located name represent a meta-template instantiation, a member of the meta-template or an argument to the meta-template, replacing the leading qualifiers of the located name with a result stored in the first data structure; responsive to a determination that the located name is not qualified, determining whether the located name represents a meta-template instantiation, a member of the meta-template or an argument to the meta-template; responsive to a determination that the located name represents a meta-template instantiation, a member of the meta-template or an argument to the meta-template, replacing the located name with a result in the first data structure; determining whether more names exist; and responsive to a determination that more names exist, locating a next name; creating an associated entry in a second data structure linked to the entry comprising the set of mapped entries, wherein the associated entry represents the set of mapped entries; and using the associated entry of the second data structure in combination with the entry of the first data structure.