[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
This commit is contained in:
		
							parent
							
								
									cb3de09503
								
							
						
					
					
						commit
						9909237d99
					
				| 
						 | 
					@ -40,10 +40,17 @@ namespace llvm {
 | 
				
			||||||
  template<typename T>
 | 
					  template<typename T>
 | 
				
			||||||
  class LLVM_GSL_POINTER LLVM_NODISCARD ArrayRef {
 | 
					  class LLVM_GSL_POINTER LLVM_NODISCARD ArrayRef {
 | 
				
			||||||
  public:
 | 
					  public:
 | 
				
			||||||
    using iterator = const T *;
 | 
					    using value_type = T;
 | 
				
			||||||
    using const_iterator = const T *;
 | 
					    using pointer = value_type *;
 | 
				
			||||||
    using size_type = size_t;
 | 
					    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<iterator>;
 | 
					    using reverse_iterator = std::reverse_iterator<iterator>;
 | 
				
			||||||
 | 
					    using const_reverse_iterator = std::reverse_iterator<const_iterator>;
 | 
				
			||||||
 | 
					    using size_type = size_t;
 | 
				
			||||||
 | 
					    using difference_type = ptrdiff_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  private:
 | 
					  private:
 | 
				
			||||||
    /// The start of the array, in an external buffer.
 | 
					    /// The start of the array, in an external buffer.
 | 
				
			||||||
| 
						 | 
					@ -297,8 +304,17 @@ namespace llvm {
 | 
				
			||||||
  template<typename T>
 | 
					  template<typename T>
 | 
				
			||||||
  class LLVM_NODISCARD MutableArrayRef : public ArrayRef<T> {
 | 
					  class LLVM_NODISCARD MutableArrayRef : public ArrayRef<T> {
 | 
				
			||||||
  public:
 | 
					  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<iterator>;
 | 
					    using reverse_iterator = std::reverse_iterator<iterator>;
 | 
				
			||||||
 | 
					    using const_reverse_iterator = std::reverse_iterator<const_iterator>;
 | 
				
			||||||
 | 
					    using size_type = size_t;
 | 
				
			||||||
 | 
					    using difference_type = ptrdiff_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// Construct an empty MutableArrayRef.
 | 
					    /// Construct an empty MutableArrayRef.
 | 
				
			||||||
    /*implicit*/ MutableArrayRef() = default;
 | 
					    /*implicit*/ MutableArrayRef() = default;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue