std.data.json formal review

Andrei Alexandrescu via Digitalmars-d digitalmars-d at puremagic.com
Fri Aug 14 04:40:01 PDT 2015


On 8/12/15 5:43 AM, Sönke Ludwig wrote:
>> Anyway, I've just started to work on a generic variant of an enum based
>> algebraic type that exploits as much static type information as
>> possible. If that works out (compiler bugs?), it would be a great thing
>> to have in Phobos, so maybe it's worth to delay the JSON module for that
>> if necessary.
>>
>
> First proof of concept:
> https://gist.github.com/s-ludwig/7a8a60150f510239f071#file-taggedalgebraic-d-L148
>
>
> It probably still has issues with const/immutable and ref in some
> places, but the basics seem to work as expected.

struct TaggedAlgebraic(U) if (is(U == union)) { ... }

Interesting. I think it would be best to rename it to TaggedUnion 
(instantly recognizable; also TaggedAlgebraic is an oxymoron as there's 
no untagged algebraic type). A good place for it is straight in std.variant.

What are the relative advantages of using an integral over a pointer to 
function? In other words, what's a side by side comparison of 
TaggedAlgebraic!U and Algebraic!(types inside U)?


Thanks,

Andrei


More information about the Digitalmars-d mailing list