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
