Mark a parameter as virtual, and declare a method.
Call the next most specialized override if it exists. In other words, call the override that would have been called if this one had not been defined.
Used as a string mixin: register the methods declaration and definitions in the current module.
Set the function that is called if a method cannot be called with the arguments. Default is to abort the program.
Update the runtime dispatch tables. Must be called once before calling any method. Typically this is done at the beginning of main.
Information passed to the error handler function.
Used as an attribute: add an override to a method.
This module implements fast open multi-_methods.
Open _methods are like virtual functions, except that they are free functions, living outside of any class. Multi-_methods can take into account the dynamic types of more than one argument to select the most specialized variant of the function.
This implementation uses compressed dispatch tables to deliver a performance similar to ordinary virtual function calls, while minimizing the size of the dispatch tables in presence of multiple virtual arguments.
CAVEAT: this module uses the deprecated deallocator field in the ClassInfo structure to store a pointer similar to a vptr . It is thus incompatible with classes that define a delete member, and with modules that use this field for their own purpose.
Synopsis of openmethods: