mirror of
git://code.qt.io/qt/qt5.git
synced 2026-07-17 12:01:29 +08:00
The rule in this form is not as helpful as intented. Paraphrasing comments from the linked issue: This rule was created based on clazy's “Warn when iterator objects are implicitly cast to const_iterator" which was likely an attempt to limit hidden detaches of implicitly-shared Qt containers. But mixing const_iterator and iterator is not the problem. The problem is calling a non-const begin()/end()/find()/etc when you only need const_iterators. So if you ban the implicit conversion from iterator to const_iterator, you will catch these, theoretically. Practically, no-one writes QList<Foo>::const_iterator it = l.begin() these days anymore, everyone is using auto, so the check can never actually trigger for True Positives. As-is, it produces False Positives which has a potential to make the code actually worse. An alternative to reach a similar goal is to use QT_STRICT_ITERATORS, so there’s no need for an Axivion check for it. Task-number: BAUHAUS-29596 Pick-to: 6.12 Change-Id: I910e9ecc89c3db497c046f6d15ff07ab2ecc470a Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>