//================================================================= From: Jean-Louis Leroy Sent: Saturday, July 27, 2013 8:26 PM I am working on library that pretty much implements what Pirkelbauer, Solodkyy and Stroustrup describe in their paper "Open Multi-Methods for C++" - although there are some divergences. I have posted it on GitHub: https://github.com/jll63/multimethods. Please examine the files in the "examples" directory to get an idea of how to use it. [SNIP] The library is essentially feature complete (if anything ever is). I am now going to work on the documentation, a build system, some clean up and compatibility (I tested it only with g++ 4.7.2 only so far). Is there interest in the Boost community for this stuff? If yes, I will adapt it to the guidelines and submit it for formal review. Of course, suggestions are welcome. //================================================================= Are virtual base classes supported? Maybe “virtual_” should be renamed to “virtualize” or “virtualized,” to avoid having a trailing underscore in a non-member name. A good way to document is to write a Doxygen comment as you write your class, function, or macro prototype. It makes you have to think about what the public side of your code has to do. But looking at your “next.cpp” example, you should start with documenting the “selector,” “virtual_,” “MM_CLASS,” “MM_INIT,” “MULTIMETHOD,” “BEGIN_METHOD,” “END_METHOD,” and “initialize” items. Anything in your implementation classes that don’t have to be seen by public code can be make private. Non-public types can go in a detail namespace. Daryle W.