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; using const_reverse_iterator = std::reverse_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; using const_iterator = __wrap_iter; using reverse_iterator = _VSTD::reverse_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; using const_iterator = __wrap_iter; using reverse_iterator = _VSTD::reverse_iterator; 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; @@ -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