<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sat, Nov 11, 2017 at 10:27 AM, Richard Duivenvoorde <span dir="ltr"><<a href="mailto:rdmailings@duif.net" target="_blank">rdmailings@duif.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="gmail-">On 11-11-17 01:03, Nyall Dawson wrote:<br>
> The "TLDW" for interested parties:<br>
> - Qt containers (qlist, qvector, qmap, etc) are unmaintained, They<br>
> won't be removed by upstream, but you shouldn't use them if you have a<br>
> choice<br>
> - QList is absolute rubbish and should never be used, unless you're<br>
> forced to by Qt API. It's likely to be killed in Qt 6 (becoming just<br>
> an alias for QVector)</span><br></blockquote></div></div><div class="gmail_extra"><br></div><div class="gmail_extra">Here are my (very subjective) reasons for choosing one or the other approach<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">WHY USING MAINLY/ONLY QT API</div><div class="gmail_extra">- Qt API is well documented with examples on <a href="http://doc.qt.io/qt-5/">http://doc.qt.io/qt-5/</a> and using a single API instead of a mix it's a clear advantage (you don't have to constantly ask yourself which API you need to use in a particular call)<br></div><div class="gmail_extra">- Qt API is simple and intuitive</div><div class="gmail_extra">- Qt API is more readable (camel case, no std:: etc.)</div><div class="gmail_extra">- Qt Containers are simple to use and cheap to copy (with caveats)<br></div><div class="gmail_extra">- QString has no real alternative for UTF8</div><br><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra">WHY USING MAINLY/ONLY STL API</div><div class="gmail_extra">- Qt Containers are not for-range loop friendly (detach issues)</div><div class="gmail_extra">- Qt Containers are kind of deprecated</div><div class="gmail_extra">- STL is part of a standard, may lower barriers to entry for not-Qt devs</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">CONCLUSIONS</div><div class="gmail_extra">- I feel that the real motivation is to stay away from Qt containers, if it wasn't for them we would not probably be here discussing in the first place<br></div>- I'd try as much as possible to avoid mixing two APIs: if we go for STL, let's try to minimize Qt API usage or constraint it to certain domains (for example: QStrings manipulation, dispatcher, GUI)<div class="gmail_extra">- no strong opinions here, but the greatest danger is to not decide: we'll end up with a mixture of APIs and styles and code reviews will become completely arbitrary, with people asked to switch API depending on who reviews the code (and when the review is made)</div><div class="gmail_extra"><div class="gmail_extra">- whatever we agree upon, it *must* be documented clearly in coding guidelines</div><div class="gmail_extra"><br></div><div class="gmail_extra">WHAT TO DO?</div><div class="gmail_extra"><br></div><div class="gmail_extra">We have a few strong C++ coders in this community, I think that the best way to proceed would be to let them articulate the different options that we have and - if the don't agree - let the core devs vote on the proposals they come out with.<br></div></div></div><div class="gmail_extra"><br></div><div class="gmail_extra"></div><div class="gmail_extra"><br></div><div class="gmail_extra">Btw, thanks for binging up this discussion!</div><div class="gmail_extra"><br></div><div class="gmail_extra">Cheers.<br clear="all"></div><div class="gmail_extra"><br>-- <br><div class="gmail_signature">Alessandro Pasotti<br>w3:   <a href="http://www.itopen.it" target="_blank">www.itopen.it</a></div>
</div></div>