35 #ifndef _BLAZE_UTIL_UNIQUEPTR_H_
36 #define _BLAZE_UTIL_UNIQUEPTR_H_
97 ,
typename D = PtrDelete >
125 inline Pointer operator->() const ;
132 inline Pointer
get() const ;
134 inline
void reset( Pointer ptr = NULL ) ;
174 , deleter_( Deleter() )
327 template<
typename T1,
typename D1,
typename T2,
typename D2 >
330 template<
typename T1,
typename D1,
typename T2,
typename D2 >
333 template<
typename T1,
typename D1,
typename T2,
typename D2 >
334 inline bool operator<( const UniquePtr<T1,D1>& lhs,
const UniquePtr<T2,D2>& rhs );
336 template<
typename T1,
typename D1,
typename T2,
typename D2 >
337 inline bool operator<=( const UniquePtr<T1,D1>& lhs,
const UniquePtr<T2,D2>& rhs );
339 template<
typename T1,
typename D1,
typename T2,
typename D2 >
342 template<
typename T1,
typename D1,
typename T2,
typename D2 >
345 template<
typename T,
typename D >
348 template<
typename T,
typename D >
351 template<
typename T,
typename D >
352 inline bool operator<( const UniquePtr<T,D>& ptr,
const Null& null );
354 template<
typename T,
typename D >
357 template<
typename T,
typename D >
358 inline bool operator<=( const UniquePtr<T,D>& ptr,
const Null& null );
360 template<
typename T,
typename D >
363 template<
typename T,
typename D >
366 template<
typename T,
typename D >
369 template<
typename T,
typename D >
370 inline bool operator<( const Null& null, const UniquePtr<T,D>& ptr );
372 template<
typename T,
typename D >
375 template<
typename T,
typename D >
376 inline bool operator<=( const Null& null, const UniquePtr<T,D>& ptr );
378 template<
typename T,
typename D >
381 template<
typename T,
typename D >
394 template<
typename T1
400 return lhs.
get() == rhs.
get();
412 template<
typename T1
418 return lhs.
get() != rhs.
get();
430 template<
typename T1
436 return lhs.
get() < rhs.get();
448 template<
typename T1
466 template<
typename T1
472 return !( rhs < lhs );
484 template<
typename T1
490 return !( lhs < rhs );
506 return ptr.
get() == null;
522 return !( ptr == null );
536 inline bool operator<( const UniquePtr<T,D>& ptr,
const Null& null )
538 return ptr.get() < null;
554 return ptr.
get() > null;
568 inline bool operator<=( const UniquePtr<T,D>& ptr,
const Null& null )
570 return !( ptr > null );
586 return !( ptr < null );
632 inline bool operator<( const Null& null, const UniquePtr<T,D>& ptr )
664 inline bool operator<=( const Null& null, const UniquePtr<T,D>& ptr )
#define BLAZE_USER_ASSERT(expr, msg)
Run time assertion macro for user checks.In case of an invalid run time expression, the program execution is terminated. The BLAZE_USER_ASSERT macro can be disabled by setting the BLAZE_USER_ASSERT flag to zero or by defining NDEBUG during the compilation.
Definition: Assert.h:117
Header file for basic type definitions.
Base class for non-copyable class instances.
bool operator>(const NegativeAccuracy< A > &lhs, const T &rhs)
Greater-than comparison between a NegativeAccuracy object and a floating point value.
Definition: Accuracy.h:366
bool operator>=(const NegativeAccuracy< A > &, const T &rhs)
Greater-or-equal-than comparison between a NegativeAccuracy object and a floating point value...
Definition: Accuracy.h:442
Pointer get() const
Returns a pointer to the managed resource.
Definition: UniquePtr.h:255
Deleter deleter_
Resource deleter.
Definition: UniquePtr.h:144
Scope-limited management of dynamically allocated resourses.The UniquePtr class implements a scope-re...
Definition: UniquePtr.h:98
UniquePtr(Pointer ptr=NULL)
The default constructor for UniquePtr.
Definition: UniquePtr.h:172
Safe C++ NULL pointer implementation.This implementation offers a remedy for the use of the NULL poin...
Definition: Null.h:69
Header file for the PtrDelete policy classes.
Constraint on the data type.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
RemoveReference< T >::Type & Reference
Reference type of the managed resource.
Definition: UniquePtr.h:103
Base class for non-copyable class instances.The NonCopyable class is intended to work as a base class...
Definition: NonCopyable.h:63
RemoveReference< T >::Type * Pointer
Pointer type of the managed resource.
Definition: UniquePtr.h:102
Reference operator*() const
Direct access to the managed resource.
Definition: UniquePtr.h:214
D Deleter
Type of the resource deleter.
Definition: UniquePtr.h:104
#define BLAZE_CONSTRAINT_MUST_NOT_BE_ARRAY_TYPE(T)
Constraint on the data type.In case the given data type T is an array type, a compilation error is cr...
Definition: Array.h:116
Removal of reference modifiers.The RemoveCV type trait removes any reference modifiers from the given...
Definition: RemoveReference.h:69
Header file for run time assertion macros.
void reset(Pointer ptr=NULL)
Resets the unique pointer and replaces the managed resource with the given resource.
Definition: UniquePtr.h:289
Header file for the RemoveReference type trait.
Pointer release()
Releases the ownership of the managed resource to the caller.
Definition: UniquePtr.h:272
Pointer operator->() const
Direct access to the managed resource.
Definition: UniquePtr.h:229
bool operator==(const NegativeAccuracy< A > &lhs, const T &rhs)
Equality comparison between a NegativeAccuracy object and a floating point value. ...
Definition: Accuracy.h:249
Pointer ptr_
Pointer to the managed resource.
Definition: UniquePtr.h:143
bool operator!=(const NegativeAccuracy< A > &lhs, const T &rhs)
Inequality comparison between a NegativeAccuracy object and a floating point value.
Definition: Accuracy.h:289
~UniquePtr()
The destructor for UniquePtr.
Definition: UniquePtr.h:192
void swap(UniquePtr &up)
Swapping the contents of two unique pointers.
Definition: UniquePtr.h:307
Header file for a safe C++ NULL pointer implementation.