summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/corelib/tools/qspan_p.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/corelib/tools/qspan_p.h b/src/corelib/tools/qspan_p.h
index ca0a16e7b9..40cadfe79f 100644
--- a/src/corelib/tools/qspan_p.h
+++ b/src/corelib/tools/qspan_p.h
@@ -277,7 +277,9 @@ public:
using reference = element_type&;
using const_reference = const element_type&;
using iterator = pointer; // implementation-defined choice
+ using const_iterator = const_pointer; // implementation-defined choice
using reverse_iterator = std::reverse_iterator<iterator>;
+ using const_reverse_iterator = std::reverse_iterator<const_iterator>;
static constexpr size_type extent = E;
// [span.cons], constructors, copy, and assignment
@@ -298,8 +300,12 @@ public:
// [span.iterators]
[[nodiscard]] constexpr auto begin() const noexcept { return data(); }
[[nodiscard]] constexpr auto end() const noexcept { return data() + size(); }
+ [[nodiscard]] constexpr auto cbegin() const noexcept { return const_iterator{begin()}; }
+ [[nodiscard]] constexpr auto cend() const noexcept { return const_iterator{end()}; }
[[nodiscard]] constexpr auto rbegin() const noexcept { return reverse_iterator{end()}; }
[[nodiscard]] constexpr auto rend() const noexcept { return reverse_iterator{begin()}; }
+ [[nodiscard]] constexpr auto crbegin() const noexcept { return const_reverse_iterator{end()}; }
+ [[nodiscard]] constexpr auto crend() const noexcept { return const_reverse_iterator{begin()}; }
// [span.sub]
template <std::size_t Count>