This is not that easy to use std::* containers because at least the following 
issues have to be addressed:

  *   Memory management
  *   Binary compatibility
  *   Implementation consistency

You probably can provide, for example, some allocators, relax compatibility 
requirements and so on...  The question only is whether this is worth doing or 
not.

Personally I tend thinking that this is better to maintain, extend and improve 
what we already have rather than address the issues listed above. Again, this 
is just a personal opinion.

We should probably perform some research here.

On 12/20/19 11:47 AM, Giuseppe D'Angelo via Development wrote:
Il 20/12/19 09:23, Lars Knoll ha scritto:
The result was that QHash has clear weaknesses compared to other 
implementations. It uses too much memory and certainly isn’t the fastest 
implementation. But std::unordered_map is just as bad, so there’s no point in 
using that to implement QHash.

Just to be devil's advocate, there is... As much as it's fun and everything 
implementing a container, just using std::unordered_map would have minimal 
effort on our side ("someone else's problem", and it's not even a random 3rd 
party, but a mandatory prerequisite for building Qt), and we can put in our API 
move-conversion between QHash / std::unordered_map.

I stopped thinking that Qt should provide "special" data structures (and for 
sure we should kill any QHash/QMap usage in our APIs); QHash can be as bad (or 
as good) as std::unordered_map, and if people need something more tailored for 
their use cases, there's plenty of 3rd parties to choose from. Or is there a 
political agenda here trying to promove QHash usage? :-)

Is the plan to also have QMap be backed by an hybrid solution (array-backed, 
etc.), or std::map, or something else?

My 2 c,




_______________________________________________
Development mailing list
[email protected]<mailto:[email protected]>
https://lists.qt-project.org/listinfo/development


--
Best Regards,

Fanaskov Vitaly
Senior Software Engineer

The Qt Company / Qt Quick and Widgets Team
_______________________________________________
Development mailing list
[email protected]
https://lists.qt-project.org/listinfo/development

Reply via email to