LLVM 22.0.0git
llvm::OwningArrayRef< T > Class Template Reference

This is a MutableArrayRef that owns its array. More...

#include "llvm/ADT/ArrayRef.h"

Inheritance diagram for llvm::OwningArrayRef< T >:
[legend]

Public Member Functions

 OwningArrayRef ()=default
 OwningArrayRef (size_t Size)
 OwningArrayRef (ArrayRef< T > Data)
 OwningArrayRef (OwningArrayRef &&Other)
OwningArrayRefoperator= (OwningArrayRef &&Other)
 ~OwningArrayRef ()
Public Member Functions inherited from llvm::MutableArrayRef< T >
 MutableArrayRef ()=default
 Construct an empty MutableArrayRef.
 MutableArrayRef (T &OneElt)
 Construct a MutableArrayRef from a single element.
 MutableArrayRef (T *data, size_t length)
 Construct a MutableArrayRef from a pointer and length.
 MutableArrayRef (T *begin, T *end)
 Construct a MutableArrayRef from a range.
template<typename C, typename = std::enable_if_t< std::conjunction_v< std::is_convertible< decltype(std::declval<C &>().data()) *, T *const *>, std::is_integral<decltype(std::declval<C &>().size())>>
constexpr MutableArrayRef (const C &V)
 Construct a MutableArrayRef from a type that has a data() method that returns a pointer convertible to T *.
template<size_t N>
constexpr MutableArrayRef (T(&Arr)[N])
 Construct a MutableArrayRef from a C array.
Tdata () const
iterator begin () const
iterator end () const
reverse_iterator rbegin () const
reverse_iterator rend () const
Tfront () const
 front - Get the first element.
Tback () const
 back - Get the last element.
Tconsume_front ()
 consume_front() - Returns the first element and drops it from ArrayRef.
Tconsume_back ()
 consume_back() - Returns the last element and drops it from ArrayRef.
MutableArrayRef< Tslice (size_t N, size_t M) const
 slice(n, m) - Chop off the first N elements of the array, and keep M elements in the array.
MutableArrayRef< Tslice (size_t N) const
 slice(n) - Chop off the first N elements of the array.
MutableArrayRef< Tdrop_front (size_t N=1) const
 Drop the first N elements of the array.
MutableArrayRef< Tdrop_back (size_t N=1) const
template<class PredicateT>
MutableArrayRef< Tdrop_while (PredicateT Pred) const
 Return a copy of *this with the first N elements satisfying the given predicate removed.
template<class PredicateT>
MutableArrayRef< Tdrop_until (PredicateT Pred) const
 Return a copy of *this with the first N elements not satisfying the given predicate removed.
MutableArrayRef< Ttake_front (size_t N=1) const
 Return a copy of *this with only the first N elements.
MutableArrayRef< Ttake_back (size_t N=1) const
 Return a copy of *this with only the last N elements.
template<class PredicateT>
MutableArrayRef< Ttake_while (PredicateT Pred) const
 Return the first N elements of this Array that satisfy the given predicate.
template<class PredicateT>
MutableArrayRef< Ttake_until (PredicateT Pred) const
 Return the first N elements of this Array that don't satisfy the given predicate.
Toperator[] (size_t Index) const
Public Member Functions inherited from llvm::ArrayRef< T >
 ArrayRef ()=default
 Construct an empty ArrayRef.
 LLVM_DEPRECATED ("Use {} or ArrayRef<T>() instead", "{}") ArrayRef(std
 Construct an empty ArrayRef from std::nullopt.
 ArrayRef (const T &OneElt LLVM_LIFETIME_BOUND)
 Construct an ArrayRef from a single element.
constexpr ArrayRef (const T *data LLVM_LIFETIME_BOUND, size_t length)
 Construct an ArrayRef from a pointer and length.
constexpr ArrayRef (const T *begin LLVM_LIFETIME_BOUND, const T *end)
 Construct an ArrayRef from a range.
template<typename C, typename = std::enable_if_t< std::conjunction_v< std::is_convertible< decltype(std::declval<const C &>().data()) *, const T *const *>, std::is_integral<decltype(std::declval<const C &>().size())>>
constexpr ArrayRef (const C &V)
 Construct an ArrayRef from a type that has a data() method that returns a pointer convertible to const T *.
template<size_t N>
constexpr ArrayRef (const T(&Arr LLVM_LIFETIME_BOUND)[N])
 Construct an ArrayRef from a C array.
constexpr ArrayRef (std::initializer_list< T > Vec LLVM_LIFETIME_BOUND)
 Construct an ArrayRef from a std::initializer_list.
template<typename U, typename = std::enable_if_t< std::is_convertible_v<U *const *, T *const *>>>
 ArrayRef (const iterator_range< U * > &Range)
 Construct an ArrayRef<T> from iterator_range<U*>.
iterator begin () const
iterator end () const
reverse_iterator rbegin () const
reverse_iterator rend () const
bool empty () const
 empty - Check if the array is empty.
const Tdata () const
size_t size () const
 size - Get the array size.
const Tfront () const
 front - Get the first element.
const Tback () const
 back - Get the last element.
const Tconsume_front ()
 consume_front() - Returns the first element and drops it from ArrayRef.
const Tconsume_back ()
 consume_back() - Returns the last element and drops it from ArrayRef.
template<typename Allocator>
MutableArrayRef< Tcopy (Allocator &A)
bool equals (ArrayRef RHS) const
 equals - Check for element-wise equality.
ArrayRef< Tslice (size_t N, size_t M) const
 slice(n, m) - Chop off the first N elements of the array, and keep M elements in the array.
ArrayRef< Tslice (size_t N) const
 slice(n) - Chop off the first N elements of the array.
ArrayRef< Tdrop_front (size_t N=1) const
 Drop the first N elements of the array.
ArrayRef< Tdrop_back (size_t N=1) const
 Drop the last N elements of the array.
template<class PredicateT>
ArrayRef< Tdrop_while (PredicateT Pred) const
 Return a copy of *this with the first N elements satisfying the given predicate removed.
template<class PredicateT>
ArrayRef< Tdrop_until (PredicateT Pred) const
 Return a copy of *this with the first N elements not satisfying the given predicate removed.
ArrayRef< Ttake_front (size_t N=1) const
 Return a copy of *this with only the first N elements.
ArrayRef< Ttake_back (size_t N=1) const
 Return a copy of *this with only the last N elements.
template<class PredicateT>
ArrayRef< Ttake_while (PredicateT Pred) const
 Return the first N elements of this Array that satisfy the given predicate.
template<class PredicateT>
ArrayRef< Ttake_until (PredicateT Pred) const
 Return the first N elements of this Array that don't satisfy the given predicate.
const Toperator[] (size_t Index) const
template<typename U>
std::enable_if_t< std::is_same< U, T >::value, ArrayRef< T > > & operator= (U &&Temporary)=delete
 Disallow accidental assignment from a temporary.
template<typename U>
std::enable_if_t< std::is_same< U, T >::value, ArrayRef< T > > & operator= (std::initializer_list< U >)=delete
 Disallow accidental assignment from a temporary.
std::vector< Tvec () const
 operator std::vector< T > () const

Additional Inherited Members

Public Types inherited from llvm::MutableArrayRef< 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 const_reverse_iterator = std::reverse_iterator<const_iterator>
using size_type = size_t
using difference_type = ptrdiff_t
Public Types inherited from llvm::ArrayRef< 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<iterator>
using const_reverse_iterator = std::reverse_iterator<const_iterator>
using size_type = size_t
using difference_type = ptrdiff_t

Detailed Description

template<typename T>
class llvm::OwningArrayRef< T >

This is a MutableArrayRef that owns its array.

Definition at line 454 of file ArrayRef.h.

Constructor & Destructor Documentation

◆ OwningArrayRef() [1/4]

template<typename T>
llvm::OwningArrayRef< T >::OwningArrayRef ( )
default

Referenced by operator=(), and OwningArrayRef().

◆ OwningArrayRef() [2/4]

template<typename T>
llvm::OwningArrayRef< T >::OwningArrayRef ( size_t Size)
inline

Definition at line 457 of file ArrayRef.h.

References llvm::MutableArrayRef< T >::MutableArrayRef(), Size, and T.

◆ OwningArrayRef() [3/4]

template<typename T>
llvm::OwningArrayRef< T >::OwningArrayRef ( ArrayRef< T > Data)
inline

◆ OwningArrayRef() [4/4]

template<typename T>
llvm::OwningArrayRef< T >::OwningArrayRef ( OwningArrayRef< T > && Other)
inline

Definition at line 464 of file ArrayRef.h.

References llvm::Other, and OwningArrayRef().

◆ ~OwningArrayRef()

template<typename T>
llvm::OwningArrayRef< T >::~OwningArrayRef ( )
inline

Definition at line 473 of file ArrayRef.h.

References data.

Member Function Documentation

◆ operator=()

template<typename T>
OwningArrayRef & llvm::OwningArrayRef< T >::operator= ( OwningArrayRef< T > && Other)
inline

The documentation for this class was generated from the following file: