On Monday 01 February 2016 13:34:05 Sergio Martins wrote:
> I would write:
> 
> removeIfFirstEquals(fields, name): because:
> 
> 1) I could read it in English instead of very verbose C++
> 2) I would not need to read the implementation

I tend to agree, but it only shifts the issue down one level of abstraction. 
And removeIfFirstEquals() isn't exactly clear, either. 
fields.removeIfFirstEquals(name) would be. Maybe when C++ lifts the distinction 
between a.f(b) and f(a, b)...

It also doesn't help when you need to reuse the lambda, e.g. when sorting a 
range by some predicate and then merging the range into an existing one.

> And for the implementation.. it doesn't matter, it's a named function,
> only  does one small thing and does it good.
> 
> About the inlining, which compilers don't and does it make a difference ?

Almost none do, unless they use/you switch on whole-program-optimisation.

> A  function call should negligible compared to erase + remove_if

It's not just a function call, it's a function call though a function pointer. 
Costs like a virtual function call and turns C++ std::sort into C's qsort. 
http://stackoverflow.com/questions/4708105/performance-of-qsort-vs-stdsort

Thanks,
Marc

-- 
Marc Mutz <[email protected]> | Senior Software Engineer
KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
Tel: +49-30-521325470
KDAB - The Qt Experts
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to