|
Boost : |
From: Korcan Hussein (korcan_h_at_[hidden])
Date: 2006-03-01 15:00:54
Hi, i'm on the verge of completing a first release of a fully featured
multimethods component for C++, one in which i believe goes beyond anything
currently available and is very suited to become part of boost. I'm fully
aware of Jesse Jones's contribution however his library has not become an
offical part of boost and i believe my version takes things much further in
thew different ways and i have some nice ideas for the next version to make
even better.
It's inspired by boost/std::tr1::function and CLOS generic functions and
thus works like bost::/std::tr1::function preferred syntax ALA function
types e.g:
typedef boost::shared_ptr<fuzz> fuzz_ptr;
generic_function< void (const foo&, int, bar*, float, fuzz_ptr) > foobar;
where foo, bar and fuzz are polymorphic types and automatically are
considered for multiple dispatch, detection of which arguments are choosen
for dispatch is automated (and yes there already is support for smart/proxy
pointers/references in place with std::auto_ptr,
boost::/std::tr1::shared/intrusive_ptr working out-the-box). The order and
placement of arguments is irrelevant and non-polymorphic arguments are
totally allowed, covariant return types comes for free and work similar to
covariant return types of virtual member functions.
I think i'll just stop writing about the library any further (abit more to
it than this) i just like to know if you guys are interested in making this
an offical part of boost and to be worked on further by myself and with the
help of others.
P.S By the way this has been built with boost mpl, preprocessor and type
traits from the beginning and interlope with other boost components in mind
i.e phoenix, lambda, fusion, bind, function etc, etc.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk