
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 :). Thanks Korcan.