Boost logo

Boost :

Subject: Re: [boost] Attn metaprogrammers! [Better Enums] More complete release - feedback requested
From: Phil Endecott (spam_from_boost_dev_at_[hidden])
Date: 2015-06-07 07:04:41


Hi Anton,

Anton Bachin wrote:
> I posted to the mailing list some weeks ago concerning a reflective enum
> library. I've since done a lot of work and made a new release. I'd like to get
> feedback from anyone that is interested.
>
> The library can be found at: https://github.com/aantron/better-enums

On things that I noticed in your docs is that the complexity of
your string-to-enum conversion is linear; presumably you're either
creating a sequence of ifs or doing a linear scan through an
unsorted array.

Making this more efficient would be an interesting challenge for
metaprogrammers.

I can think of three approaches that you could take:

1. Do a compile-time sort of your strings, so that you can do a
binary search on them:
   1a - Create a tree of ifs
   1b - Create a sorted array of literals

2. Do a compile-time hash of your strings, and switch on the
run-time hash.

3. Create a parser containing nested switch statements that parse
the string character by character.

Since we're reviewing Hana this week, it would be great to see how
it could help with this. I have had real applications where this
sort of conversion, i.e. essentially wanting to use a string in a
switch statement, was a significant performance constraint.

Regards, Phil


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