1. A computer-readable storage medium configured with data and with instructions that when executed by at least one processor causes the processor(s) to perform a process for compiling a routine of a software program to provide both compatibility support and speed enhancement support, the process comprising the steps of: locating a routine in a source code of the software program, the located routine having a routine body; providing an enhanced virtual table data structure which contains an exception-based routine pointer for a high-level dispatch and also contains an error-ID-based routine pointer for a low-level dispatch, the exception-based routine pointer pointing to an exception-based version of the routine body that contains exception-based code which will upon execution by a processor throw an exception in response to an exceptional condition that is specified in the exception-based code, and the error-ID-based routine pointer pointing to an error-ID-based version of the routine body that contains error-ID-based code which will upon execution by a processor set an error code variable to an integer value that has a definition outside the error-ID-based code in response to an erroneous condition that is specified in the error-ID-based code, the high-level dispatch using the exception based routine pointer, the low-level dispatch using the error-ID-based routine pointer, the high-level dispatch being faster than the low-level dispatch, and the low-level-dispatch being compatible with more implementations than the high-level dispatch; and implementing a call to the located routine as a high-level dispatch using the exception-based routine pointer or alternatively as the low-level dispatch using the error-ID-based routine pointer depending on at least one of the following factors: whether the located routine has been overridden by a derived class in the software program, whether the located routine is part of code where an instance of a type is created in the software program and the call is a call to a virtual routine of the instance, whether the located routine is part of code where an object is sourced from a factory in the software program, whether the located routine is part of code in the software program which utilizes a function dispatch table layout containing corresponding pairs of exception-based routine pointers and error-ID-based routine pointers, or whether a target environment of the software program includes C++extensions.