Lines Matching refs:C
81 template <class C>
86 typedef C element_type;
88 explicit unique_ptr_base(C* p) : ptr_(p) { } in unique_ptr_base()
92 C& operator*() const {
96 C* operator->() const {
100 C* get() const { return ptr_; } in get()
105 bool operator==(C* p) const { return ptr_ == p; }
106 bool operator!=(C* p) const { return ptr_ != p; }
110 C* tmp = ptr_; in swap()
120 C* release() { in release()
121 C* retVal = ptr_; in release()
130 C* ptr_;
134 template <class C>
135 class unique_ptr : public unique_ptr_base<C> {
137 using unique_ptr_base<C>::ptr_;
142 explicit unique_ptr(C* p = NULL) : unique_ptr_base<C>(p) { }
147 enum { type_must_be_complete = sizeof(C) }; in ~unique_ptr()
154 void reset(C* p = NULL) {
156 enum { type_must_be_complete = sizeof(C) };
157 C* old_ptr = ptr_;
176 template <class C>
177 class unique_ptr<C[]> : public unique_ptr_base<C> {
179 using unique_ptr_base<C>::ptr_;
184 explicit unique_ptr(C* p = NULL) : unique_ptr_base<C>(p) { }
189 enum { type_must_be_complete = sizeof(C) }; in ~unique_ptr()
196 void reset(C* p = NULL) {
198 enum { type_must_be_complete = sizeof(C) };
199 C* old_ptr = ptr_;
206 C& operator[] (size_t i) { return ptr_[i]; }
221 template <class C>
222 void swap(unique_ptr<C>& p1, unique_ptr<C>& p2) { in swap()
226 template <class C>
227 bool operator==(C* p1, const unique_ptr<C>& p2) {
231 template <class C>
232 bool operator!=(C* p1, const unique_ptr<C>& p2) {