CheckedDelete.h
Go to the documentation of this file.
1 //=================================================================================================
33 //=================================================================================================
34 
35 #ifndef _BLAZE_UTIL_CHECKEDDELETE_H_
36 #define _BLAZE_UTIL_CHECKEDDELETE_H_
37 
38 
39 namespace blaze {
40 
41 //=================================================================================================
42 //
43 // CHECKED DELETE OPERATIONS
44 //
45 //=================================================================================================
46 
47 //*************************************************************************************************
50 template< typename T > void checkedDelete( T* ptr );
51 template< typename T > void checkedArrayDelete( T* ptr );
53 //*************************************************************************************************
54 
55 
56 //*************************************************************************************************
68 template< typename T >
69 void checkedDelete( T* ptr )
70 {
71  using TypeMustBeComplete = char[ sizeof(T)? 1 : -1 ];
72  (void) sizeof(TypeMustBeComplete);
73  delete ptr;
74 }
75 //*************************************************************************************************
76 
77 
78 //*************************************************************************************************
90 template< typename T >
91 void checkedArrayDelete( T* ptr )
92 {
93  using TypeMustBeComplete = char[ sizeof(T)? 1 : -1 ];
94  (void) sizeof(TypeMustBeComplete);
95  delete[] ptr;
96 }
97 //*************************************************************************************************
98 
99 } // namespace blaze
100 
101 #endif
void checkedDelete(T *ptr)
Type-checked delete operation.
Definition: CheckedDelete.h:69
void checkedArrayDelete(T *ptr)
Type-checked delete[] operation.
Definition: CheckedDelete.h:91
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57