Mixin operator 'if' directly

Timoses timosesu at gmail.com
Sat Dec 22 03:44:09 UTC 2018


On Wednesday, 19 December 2018 at 15:40:50 UTC, Neia Neutuladh 
wrote:
> On Wed, 19 Dec 2018 15:12:14 +0000, bauss wrote:
> Or while instantiating it:
>
> mixin template foo()
> {
>   int _ignoreme()
>   {
>     if (readln.strip == "abort") throw new AbortException;
>     return 1;
>   }
>   int _alsoIgnoreMe = _ignoreme();
> }
> void main()
> {
>   mixin foo;
> }

Awesome hack!
Being a hack, it would be even nicer if it worked ouf of the box:

     mixin template foo(bool b)
     {
         int _impl() { writeln(b); return int.init; }
         int _ipml2 = _impl();
     }

vs

     mixin template foo(bool b)
     {
         writeln(b);
     }




More information about the Digitalmars-d-learn mailing list