Associative Array & different template types

Robert M. Münch robert.muench at saphirion.com
Thu Jul 4 10:08:49 UTC 2019


On 2019-07-03 19:07:10 +0000, ag0aep6g said:

> On 03.07.19 20:20, Robert M. Münch wrote:
>> So, I need to carry around the object from which a delegate was created 
>> from because it's not possible to query the delegate for the object 
>> later somewhere else in the code.
> 
> It is possible to get the context object out of a delegate:
> 
> ----
> class C { void method() {} }
> void main()
> {
>      auto c = new C;
>      void delegate() dg = &c.method;
>      assert(cast(C) dg.ptr is c); /* passes */
> }
> ----
> 
> You just have to know (or carry around) the type so that you can cast 
> correctly.

Hmm... IIRC I once played around and it didn't work... seems I messed 
this up. Thanks for correcting my wrong perception here.

-- 
Robert M. Münch
http://www.saphirion.com
smarter | better | faster



More information about the Digitalmars-d-learn mailing list