On 23.02.2011 17:08, %u wrote:
Hi everyone,
Was hoping someone could help me make sense of this bit of C++ code:
class canvas
{
operator HDC() { return _hdc; }
protected:
canvas(HDC hdc): _hdc(hdc) {}
HDC _hdc;
}
From what I understand, HDC is an alias for HANDLE in Windows. So
they are overloading canvas such that when assigned to handle
instance it returns _hdc? How is this done in D?
Thanks
Something like this, and i shouldn't be a class in D (it's a proxy sort
of, right? ) :
struct canvas{
alias getHandle this;
this(HDC hdc){
_hdc = hdc;
}
@property HDC getHandle(){ return _hdc; }
private:
HDC _hdc;
}
uinttest{
HDC h = cast(HDC)1;
canvas c = h;//intitalize
h = c;
assert(h == c);
}
--
Dmitry Olshansky