Envoyé par
SKZ81
Sinon, pourquoi ne pas tester le retour du new dans la macro ?? (Ce qui évite de bidouiller new : éventuellement rassurant!!)
Cette façon de faire m'est bien passé par la tête mais elle ne permet pas d'imbriquer un new dans autre chose, par exemple comme ceci :
uneFontion(new uneClasse());
Or c'est justement pour ne pas me prendre la tête avec ce genre de cas que je veux trapper l'exception à la volée... après, libre à l'appli de catcher à son tour l'exception à cet endroit si elle le peut, mais le loggage systématique d'un message ne doit pas provoquer à lui seul la nécessité de scinder la ligne en deux.
Envoyé par
SKZ81
Envoyé par
www.informit.com/articles/article.asp?p=30642&seqNum=3
In practice, storage allocated by an overloaded global operator new is often erroneously deallocated by the standard global operator delete. One way to avoid this error is to ensure that any storage allocated by an overloaded global operator new obtains that storage from the standard global operator new. This is what we've done with the first overloaded implementation above, and our first version works correctly with standard global operator delete:
Très intéressante cette source, les infos sont très complètes ! Je ne connaissais pas le livre d'où elle est tirée, il a l'air top ! Il y a là l'info qui m'intéressais à savoir qu'on peut appeler le new standard à l'intérieur du new surchargé (bêtement j'avais pas pensé à la syntaxe ::operateur new() )... cette démarche est déjà nettement plus crédible que mon malloc !
Envoyé par
JolyLoic
Pour ça, pas besoin de surcharger new, il y a bien plus simple. Regarde du côté de set_new_handler.
Ah oui tu as raison, pour cette simple application ça suffit amplement... Néanmoins il m'a également été demandé de rajouter les infos __LINE__ et __FILE__, et pour ça la surcharge avec 2 arguments de plus me semble indispensables...
Merci pour toutes ces infos, j'essaie tout ça demain et je vous tiens au courant !
Partager