On Saturday, 25 May 2013 at 10:15:42 UTC, bearophile wrote:
Namal:

And if so, do I always have to use a suffix when the number is bigger than uint?

It looks a bit silly, I agree.

Bye,
bearophile

Well, now I have same Error for signed long:

else{
        static if (op == "+"){
                if(rhs._value > T.init && T.max - rhs._value < _value)
                        return rhs.max;
                else if(rhs._value < T.init && T.min - rhs._value > _value)
                        return rhs.min;
        }
        static if (op == "-"){
                if(rhs._value > T.init && T.min+rhs._value > _value)
                        return rhs.min;
                else if(rhs._value < T.init && T.max + rhs._value < _value)
                        return rhs.max;
        }
        static if (op == "/"){
                if(rhs._value == -1)
                        return rhs.max;
        }

does work for every type exept long. Like for the addition


unittest{
        alias slong = Saturated!long;

assert(slong(9_223_372_036_854_775_806) + slong(2) == slong(9_223_372_036_854_775_807)); assert(slong(9_223_372_036_854_775_806) + slong(-3) == slong(-9_223_372_036_854_775_808));
}

The first test is ok, but second wont even compile. Even if I append a L to each number.

Reply via email to