home *** CD-ROM | disk | FTP | other *** search
- #ifndef __SAFE_NEW_H__
- #define __SAFE_NEW_H__
-
- #define SAFE_NEW
-
- #ifdef SAFE_NEW
- #include <stdlib.h> // BUG - ╟Σσ±ⁿ ε∩≡σΣσδσφ size_t
-
- //BCC5.5 ┬σΣσ≥ ±σß φσ ∩ε ±≥αφΣα≡≥≤, φσ τφα ε ∩α≡φ√⌡ new πδεßαδⁿφ√⌡ ε∩σ≡α≥ε≡α⌡ delete
- //MSVC6.0 ┬σΣσ≥ ±σß ∩ε ±≥αφΣα≡≥φ≤, ∩≡σΣ≤∩≡σµΣα εß Φ⌡ ε≥±≤≥±≥ΓΦΦ.
- //╧ε²≥ε∞≤ ∩≡Φ Ωε∞∩Φδ ÷ΦΦ BCC Φ⌡ Γ√ß≡α±√Γασ∞
-
- void * __cdecl operator new( size_t s, const char * file, int line );
- void __cdecl operator delete( void * p, const char * file, int line );
-
- void * __cdecl operator new[]( size_t s, const char * file, int line );
- void __cdecl operator delete[]( void * p, const char * file, int line );
-
- void * __cdecl operator new( size_t s );
- void __cdecl operator delete( void * p );
-
- void * __cdecl operator new[]( size_t s );
- void __cdecl operator delete[]( void * p );
-
-
- #define new new( __FILE__, __LINE__ )
- #define delete memory_leak_report_delete( __FILE__, __LINE__ ), delete
-
- void memory_leak_report_delete( const char * cf, int cl );
- // The same trick for first-time init, as with std::cout
- class MemoryLeakReporterCreator
- {
- static int ref_count;
- public:
- MemoryLeakReporterCreator();
- ~MemoryLeakReporterCreator();
- };
- static MemoryLeakReporterCreator memory_leak_reporter_creator;
- #endif // #ifdef SAFE_NEW
-
- #endif //__SAFE_NEW_H__