Why isn't bool allowed as AA key type?
Steven Schveighoffer
schveiguy at yahoo.com
Wed Jun 1 13:11:51 PDT 2011
On Sun, 29 May 2011 16:41:56 -0400, David Nadlinger <see at klickverbot.at>
wrote:
> On 5/29/11 10:21 PM, Nick Sabalausky wrote:
>> "David Nadlinger"<see at klickverbot.at> wrote in message
>> news:irrd5h$hdj$1 at digitalmars.com...
>>> […]
>>> is there a reason bool isn't allowed as key type for associative arrays
>>> (mtype.c:3995)? The docs don't mention this. […]
>> It works for me. I use it all the time as a hash set. What version are
>> you
>> on? I've been using D2, maybe it's a D1 issue? If so, I'd file a bug
>> report.
>
> Are you sure you are using bool _keys_, not values? On a related note,
> https://github.com/D-Programming-Language/dmd/pull/77 seems to be all
> required for making them work.
>
> By the way, do you happen to have a complete hash set implementation
> lying around? I'd be interested in preparing and proposing one for
> std.container, as I need one for Thrift (currently, I have a really,
> REALLY preliminary and buggy one based on a void[0] AA, see
> https://github.com/klickverbot/thrift/blob/d-gsoc/lib/d/src/thrift/hashset.d).
There is always dcollections (has both Hash- and TreeSet). It is boost
1.0, so feel free to steal anything to propose for std.container (in fact,
RedBlackTree is from dcollections). Note that I'm nowhere near an expert
on hashing, so I'm not sure how it will perform against AAs. I know it
does beat them using my custom allocator, but that's not a truly fair
comparison -- AA's could be written with a custom allocator too.
-Steve
More information about the Digitalmars-d
mailing list