using a typedefed variable with library classes
    Christopher Wright 
    dhasenan at gmail.com
       
    Sun Jan 18 06:38:27 PST 2009
    
    
  
Charles Hixson wrote:
> Unfortunately, what it tried to do was cast it to either byte or long 
> rather than the base case (which was int).  Fortunately it couldn't 
> decide which to cast it as, as either choice would have been an error. 
> (I'm writing to a binary file, and the size of the item written is 
> significant.)
The following works for me (using LDC):
typedef int mint;
void foo (long i) {}
void main ()
{
     mint a = 1;
     foo (a);
}
However, this also works:
typedef int mint;
void foo (byte i) {}
void main ()
{
     mint a = 1;
     foo (a);
}
It's an implicit narrowing conversion -- that involves data loss. This 
is a bug.
    
    
More information about the Digitalmars-d-learn
mailing list