Andreas Aardal Hanssen schreef op 18-5-2015 om 11:35:
2015-05-18 11:10 GMT+02:00 Christian Kandeler
<christian.kande...@theqtcompany.com
<mailto:christian.kande...@theqtcompany.com>>:
On 05/17/2015 09:57 PM, Giuseppe D'Angelo wrote:
> On Sun, May 17, 2015 at 9:55 PM, Smith Martin
> <martin.sm...@theqtcompany.com
<mailto:martin.sm...@theqtcompany.com>> wrote:
>> How do you get bitten by an out-reference?
> As usual, because at call site I didn't realize the argument was
> actually being modified. Compare
> doSomething(param1, param2, param3);
> doSomething(¶m1, param2, param3);
> which one is likely to be modifying arguments?
Both are equally likely to, unless you are a C programmer.
Qt convention is to promote pointers for out parameters to make it
immediately clear that your input can be modified. Out references, or
non-const reference parameters, have traditionally been discouraged
because they make the code harder to read. It's not about what's
proper C/C++.
Pointers can be just as opague. In terms of the above example: I cannot
see from any of the parameters to those functions what their types are.
If they are already pointers, they may already get modified. On the
other hand: that pointer may not get modified at all.
I created https://bugreports.qt.io/browse/QTCREATORBUG-14468 for some
tooling support to get a better feedback on what's going on.
André
_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development