const and mutable opApply's

Oleg B via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Jun 19 15:17:28 PDT 2016


Hello

struct WTable
{
...
     private enum opApply_body = q{
         if( smt )
         {
             foreach( f; 0 .. size-1 )
                 foreach( t; f+1 .. size )
                     if( auto r = dlg(f,t,data[getIndex(f,t)]) ) 
return r;
         }
         else
         {
             foreach( f; 0 .. size )
                 foreach( t; 0 .. size )
                 {
                     if( f == t ) continue;
                     if( auto r = dlg(f,t,data[getIndex(f,t)]) )
                         return r;
                 }
         }
         return 0;
     };

     int opApply( int delegate(size_t,size_t,T val) dlg ) const { 
mixin( opApply_body ); }
     int opApply( int delegate(size_t,size_t,ref T val) dlg ) { 
mixin( opApply_body ); }
}

How I can rewrite this code without mixin's and with one (maybe 
inout) opApply?


More information about the Digitalmars-d-learn mailing list