D24261: Modernize code: use range-based for loop in more places
Friedrich W. H. Kossebau
noreply at phabricator.kde.org
Sat Sep 28 11:53:00 BST 2019
kossebau added a comment.
Thanks for review work, @dhaumann :) Seems we have some differences though, so let's try to align knowledge:
When it comes to by-value or by reference of the loop range element value, I learned that similar rules as for arguments are valid: small size in bytes & trivial copy constructor -> value, otherwise reference. QPoint thus would be candidate for by-value. Would I need to improve my knowledge?
Also I have learned that using `for(T& t : tContainer)` is fine for iterating through a container to change its values, and preferred over its short expression as well. Used to in other places, so surprised by the comments.
INLINE COMMENTS
> dhaumann wrote in kedittoolbar.cpp:1566
> No qAsConst? If done by intention, maybe keep the iterator version?
By intention, as the elements of the vector are modified.
Why would you keep the iterator version in that case?
> dhaumann wrote in kgesture.cpp:117
> qAsConst?
Again, members of d->m_shape are changed (thus also the QPoint&)
> dhaumann wrote in kgesture.cpp:131
> 1. QPoint &, or is sizeof QPoint==8?
> 2. Previously, the loop started at index 1.
Why the sizeof==8 rule?
Good catch about the 1, slipped me, will drop change here.
> dhaumann wrote in kgesture.cpp:165
> QPoint &
By value on purpose.
> dhaumann wrote in kmainwindow.cpp:349
> qAsConst?
dbusName and its chars ares modified here,
> dhaumann wrote in kshortcutseditor.cpp:715
> Maybe make it a QVector. Or simply an initializer list.
Wanted to make it a plain array, but forgot.
Still curious about the idea with the uses of initializer list as "list", container so far I have not seen it elsewhere and wonder what the effect is.
> dhaumann wrote in kswitchlanguagedialog_p.cpp:373
> qAsConst
members of languagesList are changed.
> dhaumann wrote in ktoolbar.cpp:187
> Let's say values detaches here, then the changes value doesn't have any effect on the original one.
values detaches as before (where by use of non-const operator[]),now by internal use of begin()/end(), but this is fine, no? The "original" one is the class member `values` itself, so where do you see a non-original one?
> dhaumann wrote in ktoolbar.cpp:376
> constexpr?
Not directly related/needed to the actual change. Going for const arrays and making them constexpr I would do in a separate dedicated commit (with my having-had-to-read-lots-of.commit-history hat on :) ).
REPOSITORY
R263 KXmlGui
REVISION DETAIL
https://phabricator.kde.org/D24261
To: kossebau, dfaure
Cc: dhaumann, kde-frameworks-devel, LeGast00n, GB_2, michaelh, ngraham, bruns
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20190928/bf4c3f27/attachment-0001.html>
More information about the Kde-frameworks-devel
mailing list