[Development] QHash iteration vs std::unordered_map

Sergio Martins sergio.martins at kdab.com
Thu Apr 20 19:18:37 CEST 2017


On 2017-04-20 18:06, Matthew Woehlke wrote:
> On 2017-04-16 10:44, Corentin wrote:
>> If you want the same behavior, you can create a proxy for your 
>> associative
>> container instance, with a custom iterator whose operator*() returns a 
>> std
>> pair ( or a QPair ) - quite a bit of boilterplate code.
> 
> ...or use
> https://github.com/Kitware/qtextensions/blob/master/core/qtEnumerate.h.
> Rather than returning a pair (which may add overhead), it creates a
> proxy that just returns the iterator, so you can write:
> 
>   for (auto i : qtEnumerate(my_hash))
>     do_stuff(i.key(), i.value());

That doesn't work with temporaries, does it ?

Maybe something to fix in the C++ language, since the usual 
lifetime-extension tricks don't help in this case.


Regards,
-- 
SĂ©rgio Martins | sergio.martins at kdab.com | Senior Software Engineer
Klarälvdalens Datakonsult AB, a KDAB Group company
Tel: Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322)
KDAB - The Qt, C++ and OpenGL Experts



More information about the Development mailing list