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 ) ;
142 inline operator
bool() const ;
181 , deleter_( Deleter() )
340 return (
ptr_ != NULL );
356 template<
typename T1,
typename D1,
typename T2,
typename D2 >
359 template<
typename T1,
typename D1,
typename T2,
typename D2 >
362 template<
typename T1,
typename D1,
typename T2,
typename D2 >
363 inline bool operator<( const UniquePtr<T1,D1>& lhs,
const UniquePtr<T2,D2>& rhs );
365 template<
typename T1,
typename D1,
typename T2,
typename D2 >
366 inline bool operator<=( const UniquePtr<T1,D1>& lhs,
const UniquePtr<T2,D2>& rhs );
368 template<
typename T1,
typename D1,
typename T2,
typename D2 >
371 template<
typename T1,
typename D1,
typename T2,
typename D2 >
374 template<
typename T,
typename D >
377 template<
typename T,
typename D >
380 template<
typename T,
typename D >
381 inline bool operator<( const UniquePtr<T,D>& ptr,
const Null& null );
383 template<
typename T,
typename D >
386 template<
typename T,
typename D >
387 inline bool operator<=( const UniquePtr<T,D>& ptr,
const Null& null );
389 template<
typename T,
typename D >
392 template<
typename T,
typename D >
395 template<
typename T,
typename D >
398 template<
typename T,
typename D >
399 inline bool operator<( const Null& null, const UniquePtr<T,D>& ptr );
401 template<
typename T,
typename D >
404 template<
typename T,
typename D >
405 inline bool operator<=( const Null& null, const UniquePtr<T,D>& ptr );
407 template<
typename T,
typename D >
410 template<
typename T,
typename D >
423 template<
typename T1
429 return lhs.
get() == rhs.
get();
441 template<
typename T1
447 return lhs.
get() != rhs.
get();
459 template<
typename T1
465 return lhs.
get() < rhs.get();
477 template<
typename T1
495 template<
typename T1
501 return !( rhs < lhs );
513 template<
typename T1
519 return !( lhs < rhs );
535 return ptr.
get() == null;
551 return !( ptr == null );
565 inline bool operator<( const UniquePtr<T,D>& ptr,
const Null& null )
567 return ptr.get() < null;
583 return ptr.
get() > null;
597 inline bool operator<=( const UniquePtr<T,D>& ptr,
const Null& null )
599 return !( ptr > null );
615 return !( ptr < null );
661 inline bool operator<( const Null& null, const UniquePtr<T,D>& ptr )
693 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:262
Deleter deleter_
Resource deleter.
Definition: UniquePtr.h:151
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:179
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:221
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:296
Header file for the RemoveReference type trait.
Pointer release()
Releases the ownership of the managed resource to the caller.
Definition: UniquePtr.h:279
Pointer operator->() const
Direct access to the managed resource.
Definition: UniquePtr.h:236
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:150
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:199
void swap(UniquePtr &up)
Swapping the contents of two unique pointers.
Definition: UniquePtr.h:314
Header file for a safe C++ NULL pointer implementation.