Issue No.03 - May/June (2006 vol.23)
Danil Shopyrin , Transas Technologies and Saint Petersburg State University of Information Technologies, Mechanics, and Optics
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/MS.2006.77
A multimethod is a virtual method of several objects. Some object-oriented programming languages support multimethods, but C++ doesn't. The proposed multimethods implementation approach based on recursive deferred dispatching allows multimethod functionality in C++. The approach is completely declarative and ensures compile-time type safety and integrity checking. It also provides a constant multimethod execution time, separate source code compilation, and is portable. The approach is generalized as a reusable freeware library intended to hide its complexity from the client code.
multimethods, multiple dispatch, polymorphism, template metaprogramming, C++, reusable libraries
Danil Shopyrin, "Multimethods in C++ Using Recursive Deferred Dispatching", IEEE Software, vol.23, no. 3, pp. 62-73, May/June 2006, doi:10.1109/MS.2006.77