Movement against float.init being nan
    Ali Çehreli 
    acehreli at yahoo.com
       
    Sat Aug 20 04:04:08 UTC 2022
    
    
  
On 8/19/22 06:42, Hipreme wrote:
 > that float and double are initialized to `nan`.
I think nan is the right choice. As Walter said, integrals are the 
outliers because there is not non equivalent for them.
 > This is really bad
Although we are all guilty, what is worse is using fundamental types 
directly. I think the following is a solution to nan being inappropriate 
e.g. for Distance:
struct initted(T, T initValue) {
   T value = initValue;
   alias value this;
}
alias Distance = initted!(double, 0);
void main() {
   Distance d;  // Not a nan ;)
   d += 1.5;
   d /= 2;
   assert(d == 0.75);
}
However, it is not type-safe enough because one can mix and match 
Distance with e.g. Temperature, which may not be correct for the program.
Ali
    
    
More information about the Digitalmars-d
mailing list