C++ cast to D cast Part 2
    Jarrett Billingsley 
    kb3ctd2 at yahoo.com
       
    Sun Sep 23 06:50:08 PDT 2007
    
    
  
"Bill Baxter" <dnewsgroup at billbaxter.com> wrote in message 
news:fd3tfr$8i6$2 at digitalmars.com...
> Jarrett Billingsley wrote:
>> "BLS" <nanali at nospam-wanadoo.fr> wrote in message 
>> news:fd2v57$1ueb$1 at digitalmars.com...
>>
>>> CWin pActive = cast(CWin)cast(void*) 
>>> cast(HWND)GetWindowLong(msg.hwnd,GWL_USERDATA);
>>
>> Yessir.
>
> Yes that's what I meant, but I have no idea if it works.  It was just a 
> guess.  Jarrett you can confirm that that avoids the runtime check in the 
> cast?
>
> --bb
class A
{
}
class B
{
}
void main()
{
    A a = new A();
    B b = cast(B)cast(void*)a;
    B b2 = cast(B)a;
    Stdout.formatln("{:X8} {:X8}", cast(void*)b, cast(void*)b2);
}
This prints out (something like)
0012AB60 00000000
So yes, the cast(B)cast(void*) avoids a runtime check. 
    
    
More information about the Digitalmars-d-learn
mailing list