C'est pas dogmatique du tout : Si tu gère des erreur avec des goto en C++, le langage va te rendre ta vie misérable. new balance des exceptions, tout les conteneurs du langage balancent des exceptions, toutes les opérations sur les streams, sur les pointeurs intelligents, et j'en oublient balancent des exceptions. Sans indication explicite, n'importe quel code à le droit de balancer des exceptions. Avec indication explicite, tu te privera de toutes les fonctionnalités citée précédemment, ainsi que de toutes les autres fonctions/méthodes/bibliothèques qui ne s'amusent pas à en mettre partout.
En C++, tu ne peux pas faire de goto en avant si tu défini de nouvelles variables entre temps. si en C ça ne pose aucun problème, en C++, toutes les classes n'ont pas forcement de constructeurs par défaut, et ça n'a souvent aucun sens d'en ajouter. Pour contourner le problème, il faudrai soit tout allouer dynamiquement avec new (tu sais, celui qui lance des exceptions et qui leake avec des pointeurs nus), soit introduire à l'arrache des constructeurs par défaut, enfin bref, rajouter des états et des bugs.
Si il y a 1000000 raisons pour laquelle tu peux pas utiliser d'exceptions ou de RAII, il y a 100000000000000000 raisons pour laquelle tu ne peux pas t'en passer. Tu peux toujours passer outre, mais après tu arrivera au niveau de Google et Microsoft qui en sont à inventer leur propre langages plutôt que d'utiliser C++ tel qu'il à été conçu.
[^] # Re: Julia
Posté par Batchyx . En réponse au journal De l'enseignement de la programmation en classe préparatoire. Évalué à 3.
C'est pas dogmatique du tout : Si tu gère des erreur avec des goto en C++, le langage va te rendre ta vie misérable. new balance des exceptions, tout les conteneurs du langage balancent des exceptions, toutes les opérations sur les streams, sur les pointeurs intelligents, et j'en oublient balancent des exceptions. Sans indication explicite, n'importe quel code à le droit de balancer des exceptions. Avec indication explicite, tu te privera de toutes les fonctionnalités citée précédemment, ainsi que de toutes les autres fonctions/méthodes/bibliothèques qui ne s'amusent pas à en mettre partout.
En C++, tu ne peux pas faire de goto en avant si tu défini de nouvelles variables entre temps. si en C ça ne pose aucun problème, en C++, toutes les classes n'ont pas forcement de constructeurs par défaut, et ça n'a souvent aucun sens d'en ajouter. Pour contourner le problème, il faudrai soit tout allouer dynamiquement avec new (tu sais, celui qui lance des exceptions et qui leake avec des pointeurs nus), soit introduire à l'arrache des constructeurs par défaut, enfin bref, rajouter des états et des bugs.
Si il y a 1000000 raisons pour laquelle tu peux pas utiliser d'exceptions ou de RAII, il y a 100000000000000000 raisons pour laquelle tu ne peux pas t'en passer. Tu peux toujours passer outre, mais après tu arrivera au niveau de Google et Microsoft qui en sont à inventer leur propre langages plutôt que d'utiliser C++ tel qu'il à été conçu.