[PATCH] D57039: Implement LWG3144 - span does not have a const_pointer typedef
Marshall Clow via Phabricator
reviews at reviews.llvm.org
Mon Jan 21 17:03:26 PST 2019
mclow.lists created this revision.
mclow.lists added reviewers: ldionne, EricWF.
This issue is due to be adopted in Kona in Feb.
We already had it - as an extension.
https://reviews.llvm.org/D57039
Files:
include/span
test/std/containers/views/types.pass.cpp
Index: test/std/containers/views/types.pass.cpp
===================================================================
--- test/std/containers/views/types.pass.cpp
+++ test/std/containers/views/types.pass.cpp
@@ -21,6 +21,8 @@
// using difference_type = ptrdiff_t;
// using pointer = element_type *;
// using reference = element_type &;
+// using const_pointe = const element_type *;
+// using const_reference = const element_type &;
// using iterator = implementation-defined;
// using const_iterator = implementation-defined;
// using reverse_iterator = std::reverse_iterator<iterator>;
@@ -70,7 +72,9 @@
ASSERT_SAME_TYPE(typename S::index_type, std::ptrdiff_t);
ASSERT_SAME_TYPE(typename S::difference_type, std::ptrdiff_t);
ASSERT_SAME_TYPE(typename S::pointer, ElementType *);
+ ASSERT_SAME_TYPE(typename S::const_pointer, const ElementType *);
ASSERT_SAME_TYPE(typename S::reference, ElementType &);
+ ASSERT_SAME_TYPE(typename S::const_reference, const ElementType &);
static_assert(S::extent == Size); // check that it exists
Index: include/span
===================================================================
--- include/span
+++ include/span
@@ -43,8 +43,10 @@
using index_type = ptrdiff_t;
using difference_type = ptrdiff_t;
using pointer = element_type*;
+ using const_pointer = const element_type*;
using reference = element_type&;
using iterator = implementation-defined;
+ using const_reference = const element_type&;
using const_iterator = implementation-defined;
using reverse_iterator = std::reverse_iterator<iterator>;
using const_reverse_iterator = std::reverse_iterator<const_iterator>;
@@ -196,9 +198,9 @@
using index_type = ptrdiff_t;
using difference_type = ptrdiff_t;
using pointer = _Tp *;
- using const_pointer = const _Tp *; // not in standard
+ using const_pointer = const _Tp *;
using reference = _Tp &;
- using const_reference = const _Tp &; // not in standard
+ using const_reference = const _Tp &;
using iterator = __wrap_iter<pointer>;
using const_iterator = __wrap_iter<const_pointer>;
using reverse_iterator = _VSTD::reverse_iterator<iterator>;
@@ -368,9 +370,9 @@
using index_type = ptrdiff_t;
using difference_type = ptrdiff_t;
using pointer = _Tp *;
- using const_pointer = const _Tp *; // not in standard
+ using const_pointer = const _Tp *;
using reference = _Tp &;
- using const_reference = const _Tp &; // not in standard
+ using const_reference = const _Tp &;
using iterator = __wrap_iter<pointer>;
using const_iterator = __wrap_iter<const_pointer>;
using reverse_iterator = _VSTD::reverse_iterator<iterator>;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D57039.182839.patch
Type: text/x-patch
Size: 3063 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20190122/e15dd14e/attachment.bin>
More information about the libcxx-commits
mailing list