foreach  for ranges?
    Ali Çehreli 
    acehreli at yahoo.com
       
    Wed Jul 18 11:04:41 PDT 2012
    
    
  
On 07/18/2012 08:21 AM, Mike L. wrote:
 >> Also, UFCS makes no sense on overloaded operators, because they 
don't get
 >> called with ".", and all UFCS is is changing obj.func(params) to
 >> func(obj,
 >> params).
 >>
 >> - Jonathan M Davis
 >
 > Ok, that's basically what I was wondering. I had assumed foreach(e;
 > someThing) {} could possibly have been converted to someThing.opApply()
 > . Thanks for clarifying.
But that is still true and opApply receives the body of the foreach loop 
as a delegate:
     someThing.opApply(delegate int(/* loop variables */) {
         // ... the body of foreach ...
         return terminationCode; // whether the user did 'break;'
     });
Also, the following bug (that is already fixed) is somewhat related to 
this discussion:
   http://d.puremagic.com/issues/show_bug.cgi?id=5605
Ali
    
    
More information about the Digitalmars-d-learn
mailing list