D27052: Solid-device-automounter/kcm: Convert some foreach

Méven Car noreply at phabricator.kde.org
Fri Jan 31 11:00:54 GMT 2020


meven added a comment.


  In D27052#603798 <https://phabricator.kde.org/D27052#603798>, @alex wrote:
  
  > Hello,
  >  I have a question regarding your changed.
  >
  > you sometimes declare the variables you want to loop over before the loop, but sometimes in the loop.
  >  For instance in DeviceModel.cpp line 135 it is declared as a const before the loop and  in line 139 it is directly used in the loop.
  >
  > In one of my previous revisions I have implemented it like in line 139 and https://phabricator.kde.org/D26912?id=74352#inline-152211 and changes were requested.
  >
  > Am I missing conceptual differences between these use cases ?
  >
  > Thanks again for your expertise !
  
  
  The important thing is as long as you don't need to change in a loop the container, your container should be const to be used in a for loop, so that semantically the for loop is equivalent to the foreach version, but avoiding the copying foreach did.
  So either your container is a variable, it needs to be const, if not use qAsConst, and if it is a function you don't need to do anything if the function is const (`keys()`), if not the best practice is to introduce an intermediate const variable.
  
  The long version about this Q_FOREACH / foreach is at https://www.kdab.com/goodbye-q_foreach/

REPOSITORY
  R119 Plasma Desktop

REVISION DETAIL
  https://phabricator.kde.org/D27052

To: meven, broulik, ervin, #plasma
Cc: alex, plasma-devel, Orage, LeGast00n, The-Feren-OS-Dev, jraleigh, zachus, fbampaloukas, GB_2, ragreen, ZrenBot, ngraham, alexeymin, himcesjf, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, ahiemstra, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20200131/4c9070bb/attachment.html>


More information about the Plasma-devel mailing list