Blob Blame History Raw
From 6fbfad6b00e8c35346ee59cd32a0d7ccc0d8c19c Mon Sep 17 00:00:00 2001
From: Stephan Bergmann <sbergman@redhat.com>
Date: Sat, 22 Feb 2020 17:29:15 +0100
Subject: [PATCH] Adapt o3tl::span to removal of std::span::cbegin et al

<https://cplusplus.github.io/LWG/issue3320> "span::cbegin/cend methods produce
different results than std::[ranges::]cbegin/cend", as implemented now in
<https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;a=commit;
h=247f410b83797a1840573840cc2a539ef9d7f96b> "libstdc++: Remove std::span::cbegin
and std::span::cend (LWG 3320)".

Turns out we only used the removed member functions in o3tl/qa/test-span.cxx.

Change-Id: I6c73797594b4e0e753a88840033d54961e271df5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89261
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
---
 include/o3tl/span.hxx | 7 -------
 o3tl/qa/test-span.cxx | 6 ------
 2 files changed, 13 deletions(-)

diff --git a/include/o3tl/span.hxx b/include/o3tl/span.hxx
index b19d2d847ac7..8af8ba846b65 100644
--- a/include/o3tl/span.hxx
+++ b/include/o3tl/span.hxx
@@ -62,18 +62,11 @@ public:
     constexpr iterator begin() const noexcept { return data_; }
     constexpr iterator end() const noexcept { return begin() + size(); }
 
-    constexpr const_iterator cbegin() const noexcept { return begin(); }
-    constexpr const_iterator cend() const noexcept { return end(); }
-
     reverse_iterator rbegin() const noexcept
     { return reverse_iterator(end()); }
     reverse_iterator rend() const noexcept
     { return reverse_iterator(begin()); }
 
-    constexpr const_reverse_iterator crbegin() const noexcept
-    { return rbegin(); }
-    constexpr const_reverse_iterator crend() const noexcept { return rend(); }
-
     constexpr size_type size() const noexcept { return size_; }
 
     constexpr reference operator [](size_type pos) const {
diff --git a/o3tl/qa/test-span.cxx b/o3tl/qa/test-span.cxx
index 3cb78ace1db2..26eedfc21938 100644
--- a/o3tl/qa/test-span.cxx
+++ b/o3tl/qa/test-span.cxx
@@ -34,15 +34,9 @@ private:
         CPPUNIT_ASSERT_EQUAL(1, *v.begin());
         CPPUNIT_ASSERT_EQUAL(
             o3tl::span<int>::difference_type(3), v.end() - v.begin());
-        CPPUNIT_ASSERT_EQUAL(1, *v.cbegin());
-        CPPUNIT_ASSERT_EQUAL(
-            o3tl::span<int>::difference_type(3), v.cend() - v.cbegin());
         CPPUNIT_ASSERT_EQUAL(3, *v.rbegin());
         CPPUNIT_ASSERT_EQUAL(
             o3tl::span<int>::difference_type(3), v.rend() - v.rbegin());
-        CPPUNIT_ASSERT_EQUAL(3, *v.crbegin());
-        CPPUNIT_ASSERT_EQUAL(
-            o3tl::span<int>::difference_type(3), v.crend() - v.crbegin());
         CPPUNIT_ASSERT_EQUAL(std::size_t(3), v.size());
         CPPUNIT_ASSERT(!v.empty());
         CPPUNIT_ASSERT_EQUAL(2, v[1]);
-- 
2.24.1