Call method if declared only

Виталий Фадеев vital.fadeev at gmail.com
Fri Feb 28 10:20:03 UTC 2020


On Friday, 28 February 2020 at 10:14:41 UTC, Виталий Фадеев wrote:
> On Friday, 28 February 2020 at 09:49:53 UTC, Simen Kjærås wrote:
>> On Friday, 28 February 2020 at 09:25:58 UTC, Виталий Фадеев 
>> wrote:
>>> [...]
>>
>> So let's create a template for that:
>>
>> [...]
>
> Cool!

Think!
I writing code generation. Like this:

void On( T, alias M )( T o )
{
     // generate code in dispatcher
     // get AllMembers()
     //   filter OnABC (ex: OnWM_KEYUP)
     //   on each
     //   writeCode(
     //     q{
     //        if ( message == WM_KEYUP )
     //           o.OnWM_KEYUP();
     //      }
     //   );

     static ... foreach(  ) ...
     {
         CB_MESSAGE = ...
         CB_METHOD  = ...

         mixin (
             "if ( message == CB_MESSAGE ) " ~ "o." ~ CB_METHOD ~ 
"();"
         );
     }
}



More information about the Digitalmars-d-learn mailing list