Can we get rid of opApply?

Daniel Keep daniel.keep.lists at gmail.com
Tue Jan 20 14:31:21 PST 2009



Steven Schveighoffer wrote:
> "Robert Fraser" wrote
>> Steven Schveighoffer wrote:
>>> The other possibly sensible reason to keep opApply is for 
>>> interfaces/classes.  Ranges as a class would be slower than even opApply, 
>>> as each loop iteration would call a virtual function.
>> There would only need to be one vtable lookup for each function (since 
>> every iteration would use the same head(), next(), etc.) So it would be 
>> the same price as opApply (a function pointer call). Well, 3 times the 
>> price, since 3 functions need to be called.
> 
> You could technically cache the vtable lookup, but a vtable call costs more 
> than a delegate call (one lookup for vtable, then function + pointer call 
> vs. just function + pointer call).  But besides that, yes, it would be 3 
> functions called per iteration.  So still slower...
> 
> -Steve 

Add opRange and allow it to return a struct.

 -- Daniel



More information about the Digitalmars-d mailing list