On 2015-04-30 16:04, Matthew Woehlke wrote: > On 2015-02-20 14:42, Thiago Macieira wrote: >> On Friday 20 February 2015 12:53:24 Matthew Woehlke wrote: >>> for (auto const i : qtEnumerate(map)) >>> >>> Maybe it would be nice for Qt to provide one or both of these? >> >> Sounds easy enough. Want to give it a try? > > I *finally* got permission to share this. Sorry it took so long. > > The attached code, excluding the copyright notices, is hereby placed > into the Public Domain. Permission is also granted to use the attached > code under either the BSD license, as stated in the files themselves, or > pursuant to Kitware's CLA with Qt. > > It is my hope that this is useful to other people. (Also that the first > one finds its way into STL eventually :-), though that's a bit OT for here.) > > These are both C++11 code. At minimum, they'll need brace-initialization > changed to parentheses-initialization in order to build in C++03 mode. > However, qtIndexRange also uses trailing return type specification, and > I'm not sure it's possible to avoid that without losing type deduction, > which sort-of defeats the purpose. There are also lots of elided type > specifiers, though those are easy enough to add. > > Personally, I wouldn't consider it a terrible loss if these were only > available in C++11-or-later mode, since they're intended to be used with > range-based for. > >> Note that this should also work for foreach: >> >> foreach (const auto i, qtEnumerate(map)) > > I'm not sure if it will or not; it was designed to work in range-based > for, i.e. it supplies begin() and end(). I'm not sure if that's enough > to automagically work in Q_FOREACH. > > Thiago, do you want me to take another look at integrating these into Qt > proper, or do you have it in hand?
Ping? -- Matthew _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development