C++ cast to D cast Part 2

Bill Baxter dnewsgroup at billbaxter.com
Sat Sep 22 04:26:02 PDT 2007


BLS wrote:
> Hi Bill.
> Just something Regan and I allready have discussed ... but we are not 
> sure about .
> 
> C++
> CWin* pActive= 
> reinterpret_cast<CWin*>((HWND)::GetWindowLong(msg.hwnd,GWL_USERDATA));
> 
> D
> CWin pActive = cast(CWin) cast(HWND)GetWindowLong(msg.hwnd,GWL_USERDATA);
> 
> where CWin is a class.
> The problem here is that pActive in D is a reference.
> Bjoern
> 

The problem I see is that cast for classes in D is like dynamic_cast<> 
in C++.  It will return null if the typeinfo system doesn't think HWND 
is a base class of CWin.

Maybe there's some way to disable that, like by casting to void* first? 
   Or maybe it's smarter than I'm thinking.

--bb


More information about the Digitalmars-d-learn mailing list