diff --git a/src/corelib/itemmodels/qgenericitemmodel_impl.h b/src/corelib/itemmodels/qgenericitemmodel_impl.h index 2e42dac5c6f..9f14a7e13fe 100644 --- a/src/corelib/itemmodels/qgenericitemmodel_impl.h +++ b/src/corelib/itemmodels/qgenericitemmodel_impl.h @@ -500,15 +500,10 @@ protected: template static void call_at(Tuple &&tuple, size_t idx, std::index_sequence, F &&function) { - ((Is == idx ? static_cast(function(get(std::forward(tuple)))) - : static_cast(0)), ...); - } - - template - static void call_at(Tuple *tuple, size_t idx, std::index_sequence seq, F &&function) - { - if (tuple) - call_at(*tuple, idx, seq, std::forward(function)); + if (QGenericItemModelDetails::isValid(tuple)) + ((Is == idx ? static_cast(function(get( + QGenericItemModelDetails::refTo(std::forward(tuple))))) + : static_cast(0)), ...); } template