Is there a way to remove the requirement for parenthesis?
    Charles Hixson 
    charleshixsn at earthlink.net
       
    Wed Jan 21 09:26:08 PST 2009
    
    
  
P.S.:  This is Digital Mars D Compiler v2.023 running on Linux
Charles Hixson wrote:
> In this test I'm trying to emulate how I want a typedef to act, but I 
> run into a problem:
> 
> import   std.stdio;
> 
> struct   BlockNum
> {  uint   value;
> 
>    uint   opCast()   {   return   value;   }
>    void   opAssign (uint val)   {   value = val;   }
>    uint   opCall()   {   return   value;   }
> }
> 
> void   main()
> {  BlockNum   test;
>    test   =   42;
>    uint   tst2   =   test();  // <<== if I don't have the parenthesis I
>                               //    get a compiler error (cast
>                               //    required).
>           //  kfile.d(15): Error: cannot implicitly convert expression
>           //          (test) of type BlockNum to uint
> 
>    writef ("tst2 = %d\n", tst2);
> }
> 
> It seemed to me as if the parens shouldn't be required here, but I seem 
> mistaken.  Which leads to ugly code.  Is there a way around this?
    
    
More information about the Digitalmars-d-learn
mailing list