Boost logo

Boost :

Subject: Re: [boost] [multimethods] Proposal: Open Multi-Methods
From: Daryle Walker (darylew_at_[hidden])
Date: 2013-07-31 02:02:27



//=================================================================
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.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk