diff options
| author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2025-12-01 13:12:13 +0100 |
|---|---|---|
| committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2025-12-01 18:19:30 +0100 |
| commit | d6549f4781ea7d0023cf5b1b47d5b7f3139c9e0e (patch) | |
| tree | 9fca067d03fda67c54877743912c295f08dd786a | |
| parent | de630e84cc0baf9db6a404823e2c4e39c67c05f2 (diff) | |
QRM: Only detect rotate if the iterator models at least forward_iterator
Amends dc2521c156fb694f379104191e540a57371b41f0
Change-Id: I2a1e7da5aa5b7015ced25fcc49c1e66275db4bc8
Reviewed-by: Nils Petter Skålerud <nils.petter.skalerud@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
| -rw-r--r-- | src/corelib/itemmodels/qrangemodel_impl.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/corelib/itemmodels/qrangemodel_impl.h b/src/corelib/itemmodels/qrangemodel_impl.h index 55c7930cc36..5ad7dd08059 100644 --- a/src/corelib/itemmodels/qrangemodel_impl.h +++ b/src/corelib/itemmodels/qrangemodel_impl.h @@ -238,14 +238,16 @@ namespace QRangeModelDetails : std::true_type {}; - // we use std::rotate in moveRows/Columns, which requires std::swap + // we use std::rotate in moveRows/Columns, which requires std::swap and the + // iterators to be at least a forward iterator template <typename It, typename = void> struct test_rotate : std::false_type {}; template <typename It> struct test_rotate<It, std::void_t<decltype(std::swap(*std::declval<It>(), *std::declval<It>()))>> - : std::true_type + : std::is_base_of<std::forward_iterator_tag, + typename std::iterator_traits<It>::iterator_category> {}; template <typename C, typename = void> |
