69 #ifndef _DEBUG_NEW_REDEFINE_NEW
70 #define _DEBUG_NEW_REDEFINE_NEW 1
84 #ifndef _DEBUG_NEW_TYPE
85 #define _DEBUG_NEW_TYPE 1
91 void*
operator new(
size_t size,
const char* file,
int line);
92 void*
operator new[](
size_t size,
const char* file,
int line);
93 void operator delete(
void* pointer,
const char* file,
int line)
throw();
94 void operator delete[](
void* pointer,
const char* file,
int line)
throw();
95 #if defined(_MSC_VER) && _MSC_VER < 1300
98 void*
operator new[](size_t)
throw(std::bad_alloc);
99 void operator delete[](
void*)
throw();
116 #if _DEBUG_NEW_TYPE == 1
117 #define DEBUG_NEW __debug_new_recorder(__FILE__, __LINE__) ->* new
119 #define DEBUG_NEW new(__FILE__, __LINE__)
122 # if _DEBUG_NEW_REDEFINE_NEW
123 # define new DEBUG_NEW
125 # ifdef _DEBUG_NEW_EMULATE_MALLOC
128 # define malloc(s) ((void*)(new char[s]))
130 # define malloc(s) ((void*)(DEBUG_NEW char[s]))
132 # define free(p) delete[] (char*)(p)
151 : _M_file(file), _M_line(line) {}
181 #endif // _DEBUG_NEW_H
const char * new_progname
__debug_new_recorder & operator=(const __debug_new_recorder &)
void _M_process(void *pointer)
__debug_new_recorder(const char *file, int line)
static __debug_new_counter __debug_new_count
int check_mem_corruption()
_Tp * operator->*(_Tp *pointer)