On Feb 4, 2020, at 11:02, Jonas Hahnfeld <hah...@hahnjo.de> wrote:
>> That would be my impulse as well.  It is not like this code appears to
>> have notable drawbacks for the unafflicted platforms.
> 
> Except for very funny overflows and negative signs if the value is too
> large to fit into I64 ;-P
> 
> unsigned long long a = 0xC0000000;
> signed long long b = a;
> printf("%d\n", b);
> -> -1073741824

That's already an ingredient of this recipe.

   class Rational
   {
     ...
     U64 num_, den_;
     ...
     I64 numerator () const { return sign_ * num_; }

Yum!
— 
Dan


Reply via email to