[Development] Proposal: Deprecating platforms in Qt 5.6 that don't support lambda
Thiago Macieira
thiago.macieira at intel.com
Fri Feb 20 17:05:23 CET 2015
On Friday 20 February 2015 09:51:59 Marc Mutz wrote:
> Just make sure - and that's a big part of what I was trying to refer to -
> that you don't use that statment in more than one function. Because
> identical lambdas in different functions have different types, and thus
> templates they are passed to are instantiated anew each time. And compilers
> don't merge identical executable code from different template
> instantiations (or do they)?
I don't think they can, unless they're running in LTO mode.
They need to assume that you compare function pointers and thus each function
needs a different entry point, even if they have the same code. The best you
can expect is a different entry point that has an unconditional branch to the
common code.
> Cf. the commits that confine QStringLiteral to static inline functions to
> avoid duplicating the QString array data for each use in a different
> function.
The compiler needs to make the same assumption here.
--
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
More information about the Development
mailing list