[Development] Proposal: Deprecating platforms in Qt 5.6 that don't support lambda
Matthew Woehlke
mw_triad at users.sourceforge.net
Thu Feb 19 18:07:04 CET 2015
On 2015-02-19 07:29, Daniel Teske wrote:
> Qt's container classes and C++11 range based for loop do not mix very well.
> Ranged based for uses std::begin(container), which if not overloaded calls
> container.begin(), which detaches.
As an aside, the "correct" fix for this IMHO is for range-based for to
support a mechanism for marking the RHS 'const', whether or not it
otherwise would be so.
Worst case, Qt could (should?) implement something like:
struct QConstWrapper<ContainerType>
{
ContainerType::const_iterator begin() const;
ContainerType::const_iterator end() const;
// remaining "magic" elided
};
QConstWrapper<ContainerType> qConst(ContainerType const&);
That said, note that range-based for also differs from foreach in that
the former operates on the original container, whereas the latter
operates on a copy.
--
Matthew
More information about the Development
mailing list