- _formatAppendClassInfoCode
string _formatAppendClassInfoCode(string cls)
Undocumented in source. Be warned that the author may not have intended to support it.
- _interp_text
string _interp_text(T args)
Undocumented in source. Be warned that the author may not have intended to support it.
- _registerMethods
string _registerMethods()
Undocumented in source. Be warned that the author may not have intended to support it.
- defaultMethodErrorHandler
void defaultMethodErrorHandler(MethodError error)
Undocumented in source. Be warned that the author may not have intended to support it.
- interp
string interp()
Undocumented in source. Be warned that the author may not have intended to support it.
- needUpdateMethods
bool needUpdateMethods()
Undocumented in source. Be warned that the author may not have intended to support it.
- next
auto next(T args)
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.
- registerMethods
auto registerMethods(string moduleName)
Used as a string mixin: register the method declarations and definitions in
the current module.
- setMethodErrorHandler
void function(MethodError error) setMethodErrorHandler(void function(MethodError error) handler)
Set the error handling function to be called if an open method cannot be
called with the provided arguments. The default is to abort the program.
- updateMethods
Runtime.Metrics updateMethods()
Update the runtime dispatch tables. Must be called once before calling any
methods. Typically this is done at the beginning of main.
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 the presence of multiple virtual arguments.
Synopsis of openmethods: