From: Korcan Hussein (korcan_h_at_[hidden])
Date: 2006-03-07 05:39:31
Hiya, I've pretty much finished thus far with the shell (all the boost.mpl &
boost.preprocessor side of it).
I initially had a stub implementation using a hash map that maps a tuple of
type identifiers to either a pointer to function or boost::function where a
hashing was based off the string of the type identifier.
This allowed for exact matches only so over the weekend I played around with
idea of using boost::multi_index_container to allow me gain (amortized)
constant time exact matches using hashed indices and logarithmic time
inexact/nearest/best matches using ordered indices.
After a thew attempts i've become pretty much stumped on getting
best/nearest matches to work for all combinations correctly, there is always
one odd case where the set of applicable methods leaves out a more
correct/better method that is available. Also i'm not sure if this method
would handle multiple/virtual inheritance correctly (i've not tried it yet).
Another thing i relized was that hased indicies has issues of symmetric
methods/functions (while ordered indicies of-course doesn't).
So i was wondering if anyone can point me in the right direction or a give
me hand on dealing with the best/nearest matches in conjunction with
boost::multi_index_container or suggest another alternative. Once this bit
is done i'll upload it to boost vault :).
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk