Am 16.05.2015 um 00:37 schrieb Enrico Forestieri <for...@lyx.org>:

> On Fri, May 15, 2015 at 04:58:24PM +0200, Stephan Witt wrote:
> 
>> Am 15.05.2015 um 16:48 schrieb Enrico Forestieri <for...@lyx.org>:
>> 
>>> On Fri, May 15, 2015 at 04:31:05PM +0200, Stephan Witt wrote:
>>>> 
>>>> This results in the following patch - if you had something like that in
>>>> mind I'll split it in two patches. The other getPixmap method with
>>>> QPixmap result was already there.
>>> 
>>> Yes, I think that it is better passing big objects by reference rather
>>> than by value.
>> 
>> But this is not a good property of C++ compilers than.
>> 1. It's not a constant fact if an object is big.
>> 2. The compiler should generate fast code for this scenario too.
>> 3. This results in hard to read code eventually.
> 
> You are probably right and it seems people prefer the simpler approach by
> relying on the return value optimization performed by modern compilers.
> http://stackoverflow.com/questions/753312/returning-large-objects-in-functions
> http://stackoverflow.com/questions/4809120/creating-and-returning-a-big-object-from-a-function
> http://stackoverflow.com/questions/24685054/how-do-c-functions-return-a-big-object-or-a-structure
> 
> What triggered my comment was seeing that call in a loop, so you could simply
> limit the change to that one function and leave the rest as is. Or you could
> also disregard that comment ;-)

:)

I'm unsure - with the previous code returning a pixmap missing pixmaps are 
ignored silently. 
With the change proposed by Enrico it is easy to add a error or warning message.
The price is the change of many files containing a call to the getPixmap() 
method.

Is there anyone having an opinion about this topic?

Stephan

Reply via email to