On 05.12.23 10:06, Giuseppe D'Angelo via Development wrote:
> Il 05/12/23 03:52, Kevin Kofler via Development ha scritto:
>> Marc Mutz via Development wrote:
>>> Until then, either you want to be notified of sub-optimal APIs asap,
>> What is "suboptimal" about Java-style iterators, other than that they 
>> do not
>> work the same way as the STL ones? I find the Java-style iterators to be
>> easier to use and less error-prone than the STL-style ones (which, as I
>> understand it, is why they were originally added to Qt to begin with).
> 
> The huge downside is that they don't work with any algorithms or 
> range-based facilities. They work, in their little bubble.

Const ones are ok-ish, except they need to maintain two iterators 
instead of one, like STL ones, and the state depends on the history 
(specifically, whether next() or previous() was called). The problem is 
the Mutable ones. Which element does setValue() work on? Which one does 
remove() remove? I don't want to look it up, but I remember there was 
some conceptional problem there.

Also, remove() in a loop is quadratic, and since no-one ever made 
Java-style iterators for C arrays and STL containers, and they hard-code 
the name of the container in the class name without containers providing 
a typedef for them, they cannot possibly be used in generic code.

Thanks,
Marc

-- 
Marc Mutz <marc.m...@qt.io>
Principal Software Engineer

The Qt Company
Erich-Thilo-Str. 10 12489
Berlin, Germany
www.qt.io

Geschäftsführer: Mika Pälsi, Juha Varelius, Jouni Lintunen
Sitz der Gesellschaft: Berlin,
Registergericht: Amtsgericht Charlottenburg,
HRB 144331 B

-- 
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

Reply via email to