[Development] Views

Mutz, Marc marc at kdab.com
Wed Jun 12 10:28:19 CEST 2019


On 2019-06-12 09:20, Ulf Hermann wrote:
>>     I don't think that (non-)COW is a problem in the scenario under
>>     discussion.
> 
> Having the thing COW makes the porting simpler at the cost of 
> suboptimal
> performance. If we wrote a COW container as a drop-in replacement for
> QMap or QHash with equivalent behavior we could just s/QMap/QFlatMap/g
> in Qt code and the issue would largely be solved.

As I said earlier: there's no alternative to thinking. There's no one 
container that fits all use-cases. QFlatMap isn't it, either. It has 
linear insertion behaviour, and it invalidates iterators on remove. You 
need to analyse each use of QMap before replacing it with a QFlatMap (or 
an unsorted vector, or a C array with the key as an index, or...).

Get the idea out of your collective heads that we just need QFlatMap and 
everything will be solved. For some code, yes. Just like QMap is the 
correct container for some code already. But s/QMap/QFlatMap/ is just as 
wrong as using QMap just because you need an associative container was 
in the first place.

Thanks,
Marc



More information about the Development mailing list