Do you like bounded integrals?
Andrei Alexandrescu via Digitalmars-d
digitalmars-d at puremagic.com
Tue Aug 23 13:40:06 PDT 2016
Currently checkedint (https://github.com/dlang/phobos/pull/4613) stands
at 2432 lines and implements a variety of checking behaviors. At this
point I just figured I can very easily add custom bounds, e.g. an int
limited to 0 through 100 etc. It would take just a few lines because a
lot of support is there (bounds hooks, custom min/max) anyway.
However, I fear it might complicate definition and just be a bit much.
Here's the design I'm thinking of. Current:
struct Checkedint(T, Hook = Abort);
Under consideration:
struct Checkedint(T, Hook = Abort, T min = T.min, T max = T.max);
It's easy to take the limits into account, but then there are a few
messes to mind:
* When assigning a Checked to another, should the limits be matched
statically or checked dynamically?
* When composing, do the limits compose meaningfully?
* How to negotiate when both the user of Checked and the Hook need to
customize the limits? (e.g. if you look at WithNaN it needs to reserve a
special value, thus limiting the representable range).
I think all of these questions have answers, but I wanted to gauge the
interest in bounded checked integrals. Would the need for them justify
additional complications in the definition?
Andrei
More information about the Digitalmars-d
mailing list