On Thu, Dec 14, 2006 at 07:13:03PM +0100, Joaqu?n M? L?pez Mu?oz wrote:
d_cachecache=d_cache.equal_range( boost::make_tuple(qname.c_str()), // you can omit the make_tuple wrapper in Boost 1.34 composite_key_compare
());
Wonderful!
d_cachecache=d_cache.equal_range( boost::make_tuple(qname.c_str(),105), // you cannot omit make_tuple here composite_key_compare
>());
The power of Boost.MultiIndex never ceases to amaze me Joaquin! In the end,
I've solved the problem slightly differently, before your answer came in:
typedef multi_index_container<
CacheEntry,
indexed_by <
ordered_unique<
composite_key<
CacheEntry,
member
cache_t;
I've taught CIStringCompare that it can also compare const char*'s against std::strings, and things Just Worked - I tested it uses the char*/string comparisons now, and not the string/string comparison.
Hope this helps. Thanks for using Boost.MultiIndex in such exciting ways as you're doing in PowerDNS.
To a large extent, PowerDNS is just a frontend to Boost.MultiIndex. Also see: http://blog.netherlabs.nl/articles/2006/12/14/powerdns-speedups Thanks again Joaquin! -- http://www.PowerDNS.com Open source, database driven DNS Software http://netherlabs.nl Open and Closed source services