I agree, if in this situation (B + C) saturates but B + (C - D) does not then it wouldn't saturate in the end result However B + C - D would saturate at the B + C part of the operation -- "To err is human. To really screw up, you need C++!" St�phane Richard "Ada World" Webmaster http://www.adaworld.com "Martin Dowie" wrote in message news:boggo8$3us$1@titan.btinternet.com... > "Hyman Rosen" wrote in message > news:1068220677.950551@master.nyc.kbcfp.com... > > Martin Dowie wrote: > > > I'd like to be able to declare integer/float/fixed/decimal types that > are > > > limited, at both ends, and never raise exceptions > > > > This is generally called saturating arithmetic, and you are > > far from the first to request it. > > Well, at least I'm not asking for anything _completely_ stupid then! :-) > > > > I belive the difficulty > > lies in assigning meaning to expressions and intermediate > > results. What if you say A := B + C - D, with values such > > that (B + C) saturates but B + (C - D) does not? > > Standard operator precedent rules should apply - I can't see > that as being outragous? > > > >