reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
43 using iterator = const T *; 44 using const_iterator = const T *; 50 const T *Data = nullptr; 66 /*implicit*/ ArrayRef(const T &OneElt) 70 /*implicit*/ ArrayRef(const T *data, size_t length) 74 ArrayRef(const T *begin, const T *end) 74 ArrayRef(const T *begin, const T *end) 81 /*implicit*/ ArrayRef(const SmallVectorTemplateCommon<T, U> &Vec) 87 /*implicit*/ ArrayRef(const std::vector<T, A> &Vec) 92 /*implicit*/ constexpr ArrayRef(const std::array<T, N> &Arr) 97 /*implicit*/ constexpr ArrayRef(const T (&Arr)[N]) : Data(Arr), Length(N) {} 100 /*implicit*/ ArrayRef(const std::initializer_list<T> &Vec) 145 const T *data() const { return Data; } 151 const T &front() const { 157 const T &back() const { 163 template <typename Allocator> ArrayRef<T> copy(Allocator &A) { 164 T *Buff = A.template Allocate<T>(Length); 164 T *Buff = A.template Allocate<T>(Length); 166 return ArrayRef<T>(Buff, Length); 178 ArrayRef<T> slice(size_t N, size_t M) const { 180 return ArrayRef<T>(data()+N, M); 184 ArrayRef<T> slice(size_t N) const { return slice(N, size() - N); } 187 ArrayRef<T> drop_front(size_t N = 1) const { 193 ArrayRef<T> drop_back(size_t N = 1) const { 200 template <class PredicateT> ArrayRef<T> drop_while(PredicateT Pred) const { 201 return ArrayRef<T>(find_if_not(*this, Pred), end()); 206 template <class PredicateT> ArrayRef<T> drop_until(PredicateT Pred) const { 207 return ArrayRef<T>(find_if(*this, Pred), end()); 211 ArrayRef<T> take_front(size_t N = 1) const { 218 ArrayRef<T> take_back(size_t N = 1) const { 226 template <class PredicateT> ArrayRef<T> take_while(PredicateT Pred) const { 227 return ArrayRef<T>(begin(), find_if_not(*this, Pred)); 232 template <class PredicateT> ArrayRef<T> take_until(PredicateT Pred) const { 233 return ArrayRef<T>(begin(), find_if(*this, Pred)); 239 const T &operator[](size_t Index) const { 249 typename std::enable_if<std::is_same<U, T>::value, ArrayRef<T>>::type & 257 typename std::enable_if<std::is_same<U, T>::value, ArrayRef<T>>::type & 263 std::vector<T> vec() const { 264 return std::vector<T>(Data, Data+Length); 270 operator std::vector<T>() const { 271 return std::vector<T>(Data, Data+Length);