[Development] How to port from Q_FOREACH to range-based for
Frederik.Gladhorn at qt.io
Thu Jun 20 10:44:40 CEST 2019
On tirsdag 11. juni 2019 09:48:00 CEST Lars Knoll wrote:
> > On 11 Jun 2019, at 09:35, Olivier Goffart <olivier at woboq.com> wrote:
> > On 11.06.19 09:17, Lars Knoll wrote:
> >> So, is removing it worth all the hassle to us and our users? Q_FOREACH is
> >> a macro and it doesn’t really cost us anything to keep it around. Yes,
> >> it has issues with non Qt containers and I wouldn’t recommend it for any
> >> new code. But maybe we could simply fix that part, but making Q_FOREACH
> >> emit a compiler warning if used on a container that’s not implicitly
> >> shared?
> > +1
> > Although we should probably still discourage its usage in the
> > documentation.
> > Regarding the compiler warning:
> > https://codereview.qt-project.org/c/qt/qtbase/+/244010
> Nice. So doesn’t this solve most of the issues we have with Q_FOREACH (maybe
> with the exception that some people find macros ugly)?
Yes, I'd also be happy about changes to the docs, let's really not encourage
new uses of foreach. But I think we'd do ourselves and especially our users a
disfavor by deprecating it.
I have seen enough bugs introduced by people fixing deprecation warnings
blindly, and there seem to be so many issues when it comes to foreach that I
think it's simply not worth it.
(I hope q_foreach continues its long career in the shade, relaxing and slowly
fading from public memory...)
> Development mailing list
> Development at qt-project.org
More information about the Development