Sequencing and error detection of template instantiations during compilation of C++ Programs
US5864700A · kind A · utility
Assignee
Inventors
Key dates
| Filing date | Dec 12, 1996 |
| Grant date | Jan 26, 1999 |
| Priority date | — |
| Expiry date | Dec 12, 2016 |
Classification
- Technology area (CPC G)Physics
- CPC primaryG06F8/427
- WIPO fieldComputer technology
- WIPO sectorElectrical engineering
Abstract
A priority queue is used to sequence template instantiations in compiling C++ programs. If the analysis of a C++ code fragment encounters a name that requires full instantiation and no matching full instantiation exists, the parse is terminated and rescheduled, and a full instantiation is scheduled as an antecedent of the failed parse. "Antecedent" means that the failed parse code fragment will not be reparsed until after the full instantiation has succeeded. Only when the full instantiation has succeeded will the terminated parse be reconsidered. Parsing full instantiations may cause additional full instantiations. These are handled in the same manner; the additional instantiation is scheduled, and the current parse is failed and rescheduled. At the time of scheduling, the antecedent instantiation is marked with its dependent, so that the dependent chain give the chronology of the instantiation. This makes it easy to generate historical or "traceback" information for meaningful error messages.
Source: USPTO / EPO open patent data. Objective bibliographic and citation counts.