Boost logo

Boost :

Subject: Re: [boost] [GSoC] Request for Feedback on Boost.Bloom Filter Project
From: Phil Endecott (spam_from_boost_dev_at_[hidden])
Date: 2011-06-27 19:39:01


Vicente Botet wrote:
> Phil Endecott-48 wrote:
>> Alejandro Cabrera write:
>>> Arash Partow wrote:
>>>> Looks ok, but one important question - Why is the BF typed? Its not
>>>> necessary and in fact there are many use-cases where one might want to
>>>> insert and/or test membership for a range of different types using the
>>>> same BF - all that those types require are that they be hashable.

> Could you give a concrete example of insertion of different types? any type?

You mean a practical application? No.

>>> Though not necessary, I believe having a typed BF is safer. If there are
>>> users that want to eschew type safety to allow operations on multiple
>>> types,
>>> I believe this can be accomplished either by using a Bloom filter that
>>> accepts insertions of type void *.
>>
>> Hmm, it's not clear to me how exactly you would do that with void*. I
>> think Arash's suggestion is better, and you can then build
>> strongly-typed filters on top of the "any" version like this:
>>
>> class bloom_filter_any {
>> template <typename T>
>> void insert(const T& val) { .... }
>> ....
>> };
>>
>
> could you elaborate how the hash functions will be applied to any T?, Should
> this imply dynamic polymorphism?

No, it doesn't require dynamic polymorphism, just compile-type
polymorphism. The filter's hash functions must accept the types that
are actually used in calls to insert() etc.

Regards, Phil.


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