On 22.04.2016 21:52, Nordlöw wrote:
On Friday, 22 April 2016 at 17:37:44 UTC, Nordlöw wrote:
Have anybody implement Ada-style modulo types

https://en.wikibooks.org/wiki/Ada_Programming/Types/mod

Here's my first try

https://github.com/nordlow/phobos-next/blob/master/src/modulo.d

Is there a way to use

    alias _value this;

except mutation of _value which should check that _value is within value
range (0 .. m-1)?

Why do you want to perform a range check? Shouldn't it just take the appropriate remainder?

Anyway, the following will do what you request:

struct Mod(int M){
    private int x;
    @property int prop(int x)in{assert(0<=x&&x<M);}body{
        return this.x=x;
    }
    @property int prop(){ return x; }
    alias prop this;
}

Reply via email to