14 #ifndef LLVM_ADT_OWNINGPTR_H
15 #define LLVM_ADT_OWNINGPTR_H
35 #if LLVM_HAS_RVALUE_REFERENCES
38 OwningPtr &operator=(OwningPtr &&Other) {
67 assert(Ptr &&
"Cannot dereference null pointer");
72 T *
get()
const {
return Ptr; }
99 #if LLVM_HAS_RVALUE_REFERENCES
102 OwningArrayPtr &operator=(OwningArrayPtr &&Other) {
116 if (
P == Ptr)
return;
131 assert(Ptr &&
"Cannot dereference null pointer");
135 T *
get()
const {
return Ptr; }
void swap(OwningPtr< T > &a, OwningPtr< T > &b)
T & operator[](std::ptrdiff_t i) const
#define LLVM_DELETED_FUNCTION
#define LLVM_EXPLICIT
Expands to explicit on compilers which support explicit conversion operators. Otherwise expands to no...
void swap(OwningArrayPtr &RHS)
void swap(OwningPtr &RHS)