From 9909237d992000d651b32212d15111453485a6b0 Mon Sep 17 00:00:00 2001 From: Vladislav Vinogradov Date: Thu, 28 Jan 2021 15:51:58 +0300 Subject: [PATCH] [ADT][NFC] Add extra typedefs to `ArrayRef` and `MutableArrayRef` * `value_type` * `pointer` * `const_pointer` * `reference` * `const_reference` * `const_reverse_iterator` * `size_type` * `difference_type` It makes `ArrayRef` and `MutableArrayRef` types fully compliant with STL Container concept. Reviewed By: lattner, courbet Differential Revision: https://reviews.llvm.org/D95611 --- llvm/include/llvm/ADT/ArrayRef.h | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/llvm/include/llvm/ADT/ArrayRef.h b/llvm/include/llvm/ADT/ArrayRef.h index 5ed4d0766c34..bc656109c221 100644 --- a/llvm/include/llvm/ADT/ArrayRef.h +++ b/llvm/include/llvm/ADT/ArrayRef.h @@ -40,10 +40,17 @@ namespace llvm { template class LLVM_GSL_POINTER LLVM_NODISCARD ArrayRef { public: - using iterator = const T *; - using const_iterator = const T *; - using size_type = size_t; + using value_type = T; + using pointer = value_type *; + using const_pointer = const value_type *; + using reference = value_type &; + using const_reference = const value_type &; + using iterator = const_pointer; + using const_iterator = const_pointer; using reverse_iterator = std::reverse_iterator; + using const_reverse_iterator = std::reverse_iterator; + using size_type = size_t; + using difference_type = ptrdiff_t; private: /// The start of the array, in an external buffer. @@ -297,8 +304,17 @@ namespace llvm { template class LLVM_NODISCARD MutableArrayRef : public ArrayRef { public: - using iterator = T *; + using value_type = T; + using pointer = value_type *; + using const_pointer = const value_type *; + using reference = value_type &; + using const_reference = const value_type &; + using iterator = pointer; + using const_iterator = const_pointer; using reverse_iterator = std::reverse_iterator; + using const_reverse_iterator = std::reverse_iterator; + using size_type = size_t; + using difference_type = ptrdiff_t; /// Construct an empty MutableArrayRef. /*implicit*/ MutableArrayRef() = default;