Commit LWG3144 - span does not have a const_pointer typedef. Reviewed as D57039.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@354802 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/span b/include/span
index b212f87..7834000 100644
--- a/include/span
+++ b/include/span
@@ -42,8 +42,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>;
@@ -374,9 +376,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>;
diff --git a/test/std/containers/views/types.pass.cpp b/test/std/containers/views/types.pass.cpp
index ac6f47f..22eae24 100644
--- a/test/std/containers/views/types.pass.cpp
+++ b/test/std/containers/views/types.pass.cpp
@@ -20,6 +20,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>;
@@ -69,7 +71,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