From 89e8253de5313f528cdd7852574dac6e81c23dcd Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Wed, 6 Dec 2023 08:41:55 +0100 Subject: [PATCH] QSpan: make it a bit more QDoc-friendly Hide the base class; the documentation isn't supposed to show this implementation detail. Don't use auto return types for the begin/end family of member functions; QDoc doesn't resolve them, but just shows auto, which, without seeing the implementation, is pretty useless. Change-Id: If75cc1e7de9c5c1490cb37241739449df4e5d0c2 Reviewed-by: Ivan Solovev (cherry picked from commit 3814174faefef4f0a00a97d980d97312d73d132b) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/tools/qspan_p.h | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/corelib/tools/qspan_p.h b/src/corelib/tools/qspan_p.h index 40cadfe79f1..56e6886aed1 100644 --- a/src/corelib/tools/qspan_p.h +++ b/src/corelib/tools/qspan_p.h @@ -252,7 +252,10 @@ public: } // namespace QSpanPrivate template -class QSpan : private QSpanPrivate::QSpanBase +class QSpan +#ifndef Q_QDOC + : private QSpanPrivate::QSpanBase +#endif { using Base = QSpanPrivate::QSpanBase; Q_ALWAYS_INLINE constexpr void verify([[maybe_unused]] qsizetype pos = 0, @@ -298,14 +301,14 @@ public: [[nodiscard]] constexpr pointer data() const noexcept { return this->m_data; } // [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()}; } + [[nodiscard]] constexpr iterator begin() const noexcept { return data(); } + [[nodiscard]] constexpr iterator end() const noexcept { return data() + size(); } + [[nodiscard]] constexpr const_iterator cbegin() const noexcept { return begin(); } + [[nodiscard]] constexpr const_iterator cend() const noexcept { return end(); } + [[nodiscard]] constexpr reverse_iterator rbegin() const noexcept { return reverse_iterator{end()}; } + [[nodiscard]] constexpr reverse_iterator rend() const noexcept { return reverse_iterator{begin()}; } + [[nodiscard]] constexpr const_reverse_iterator crbegin() const noexcept { return rbegin(); } + [[nodiscard]] constexpr const_reverse_iterator crend() const noexcept { return rend(); } // [span.sub] template