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