/* IFT1169 - Démonstration #7 - Gestion de la mémoire - 29 mars 2008 v2.00 M.Lokbani - modification majeure pour une compilation sans erreur avec les options -pedantic -Wall 20 mars 2006 v1.01 M.Lokbani - traduction en->fr 26 février 2006 v1.00 M.Lokbani - Extrait du livre contact: lokbani@iro.umontreal.ca Copyright (C) 1999-2008 Université de Montréal Département d'informatique et de Recherche Opérationnelle Mohamed Lokbani -- Tous Droits Réservés -- All Rights Reserved -- Description: ------------ Fichier d'en tête pour le détecteur de fuites de mémoire Si l'option -DFuite est activée au moment de la compilation, nous allons redéfinir les opérateurs new et delete. Dans le cas contraire: - nous allons utiliser les fonctions new et delete par défaut fournies par le langage C++ - nous allons "désactiver" la définition de la méthode "fuite_verif". Utilisation: ------------ - activation de la surdéfinition des opérateurs "new" et "delete" au niveau global: g++ -Wall -pedantic -oS -DFuite NEW.C ..... - utilisation de "new" et "delete" par défaut: g++ -Wall -pedantic -oS -DFuite NEW.C ..... */ #include #include using namespace std; #ifndef NEWH #define NEWH #ifdef Fuite #define New new(__FILE__, __LINE__) void *operator new(size_t, const char *, int) throw(bad_alloc); void *operator new[](size_t, const char *, int) throw(bad_alloc); void operator delete(void *) throw(); void operator delete[](void *) throw(); void fuite_verif(); #else #define New new inline void fuite_verif() { } #endif #endif