Doublecpp is a preprocessor for C++ that handles a new linguistic construct for defining branches of a multi-method. The "right" branch of such a method will be selected dynamically at run-time according to the actual type of the object on which the method is invoked, and to the actual type of the first argument: double dispatch. This basically implements dynamic overloading in C++.