<table><tr><td style="">dfaure added inline comments.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D27655">View Revision</a></tr></table><br /><div><strong>INLINE COMMENTS</strong><div><div style="margin: 6px 0 12px 0;"><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D27655#inline-160251">View Inline</a><span style="color: #4b4d51; font-weight: bold;">dfaure</span> wrote in <span style="color: #4b4d51; font-weight: bold;">commandlineoptions.cpp:202</span></div>
<div style="margin: 8px 0; padding: 0 12px; color: #74777D;"><p style="padding: 0; margin: 8px;">const QString &url</p></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">I hadn't realized that this code actually modified url (hence the <tt style="background: #ebebeb; font-size: 13px;">const</tt> in my suggestion).</p>

<p style="padding: 0; margin: 8px;">Modifying the args list is a bit of an unexpected side effect.</p>

<p style="padding: 0; margin: 8px;">I think <tt style="background: #ebebeb; font-size: 13px;">for (QString url : args)</tt> would indeed be better then, or the more traditional <tt style="background: #ebebeb; font-size: 13px;">for (const QString &arg : args) { QString url = arg; ..... }</tt> so that it doesn't look like someone simply forgot a const &...</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D27655#inline-160769">View Inline</a><span style="color: #4b4d51; font-weight: bold;">abogical</span> wrote in <span style="color: #4b4d51; font-weight: bold;">mainapplication.cpp:453</span></div>
<div style="margin: 8px 0; padding: 0 12px; color: #74777D;"><p style="padding: 0; margin: 8px;">This will invoke a copy of the list, which is what I'm trying to avoid.</p></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">Note that copying QList is just increasing/decreasing a refcount, this isn't a full copy like what would happen with std::list or std::vector.</p>

<p style="padding: 0; margin: 8px;">The traditional Qt way is to pass a const & in those methods, and copy into a member variable at the end of the chain where you end up in a constructor. Cheap copy.</p>

<p style="padding: 0; margin: 8px;">The possibly more modern way is indeed pass by value and std::move, but only for constructors; don't do this for setters.</p>

<p style="padding: 0; margin: 8px;">This code is maintained by drosca though, so if he doesn't like std::move, use const & everywhere.</p></div></div></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R875 Falkon</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D27655">https://phabricator.kde.org/D27655</a></div></div><br /><div><strong>To: </strong>abogical, Falkon, drosca<br /><strong>Cc: </strong>dfaure, drosca, SGOrava, Falkon, falkon, allknow, grune, akilgus, siraj_qazi, saishm, anmolgautam, iodelay, spoorun, ptabis, navarromorales, clivej, mparillo<br /></div>