QMap повторяет foreach

Можно ли перебирать qmap, когда ключ и значение являются указателем с foreach?

Я всегда получаю сообщение об ошибке: decltype не может разрешить адрес перегруженной функции

template <typename T, typename T1>
bool func(T1* subject, QMap<T*,T1*>* map)
{
    //...
    foreach (T1* a, map->values) {

    }

Спасибо тебе за помощь


person Ini    schedule 24.04.2016    source источник
comment
Вы пробовали map-›values() ?   -  person mike510a    schedule 24.04.2016
comment
Возможный дубликат stackoverflow.com/questions /8517853/ ?   -  person Lennart Rolland    schedule 08.04.2019


Ответы (1)


Как указал Майк, вам нужно вызвать map->values(), прежде чем foreach заработает нормально.

foreach работает со ссылками, а QMap::values() возвращает их список. Это будет работать:

foreach (T1 a, map->values()) {
    if (a == *subject)
        ...
}
person anonymous    schedule 24.04.2016
comment
я забыл, что () он работает и без разыменования. - person Ini; 06.05.2016