str.to!Enum performance
Richard (Rikki) Andrew Cattermole
richard at cattermole.co.nz
Mon Sep 7 17:10:55 UTC 2026
On 08/09/2026 4:35 AM, H. S. Teoh wrote:
> On Tue, Sep 08, 2026 at 04:20:42AM +1200, Richard (Rikki) Andrew Cattermole via Digitalmars-d-learn wrote:
>> On 08/09/2026 4:01 AM, realhet wrote:
>>> On Monday, 7 September 2026 at 15:24:52 UTC, Richard (Rikki) Andrew
>>> Cattermole wrote:
>>>> https://github.com/dlang/phobos/blob/master/std/conv.d#L1103
>>>>
>>>> Appears to be it.
>>>
>>> Thank You!
>>>
>>> So it is a switch() of string cases. And that particular
>>> implementation is not allowed to do fancy, resource-involving stuff
>>> like an associative array. I will remember this. And also I will
>>> remember that with integer cases, the switch can do crazy fast jump
>>> tables.
>>
>> It probably needs optimizing.
>>
>> Have at it.
>
> Weren't string switches one of the original reasons for moving the
> implementation of switch into a druntime template? The argument was
> that it would allow more flexibility in implementing fast string
> lookups. Apparently it hasn't happened yet. :-/
>
>
> T
I have no knowledge of templating switch statements.
But I am aware of jump table optimizations, which are done by backends
if they recognize the condition + jump tree.
More information about the Digitalmars-d-learn
mailing list