Comme dit dans la phrase juste après que j'ai copié, le C++ semble définir une sémantique "attendue" pour le constructeur, qui permet des optimisations. Par contre, les compilateur ne contrôle en rien cette attente.
Pour un designer de langage, c'est la facilité : une faiblesse de génération est compensé par une optimisation qui fait des hypothèses sur le code, mais il est impossible de vérifier que le code respecte effectivement l’hypothèse.
Il manque définitivement un outil qui vérifie ce genre d'erreur, c'est pas humainement possible de tout se rappeler.
Le C tient en une centaine de page d'explication. Ocaml a peine plus, si on regarde sa doc en ligne.
A voir, si le C++ "moderne" peut se réduire à moins de 1000 pages...
[^] # Re: euh ?
Posté par Nicolas Boulay (site web personnel) . En réponse à la dépêche C++ se court-circuite le constructeur de copie. Évalué à 5.
Comme dit dans la phrase juste après que j'ai copié, le C++ semble définir une sémantique "attendue" pour le constructeur, qui permet des optimisations. Par contre, les compilateur ne contrôle en rien cette attente.
Pour un designer de langage, c'est la facilité : une faiblesse de génération est compensé par une optimisation qui fait des hypothèses sur le code, mais il est impossible de vérifier que le code respecte effectivement l’hypothèse.
Il manque définitivement un outil qui vérifie ce genre d'erreur, c'est pas humainement possible de tout se rappeler.
Le C tient en une centaine de page d'explication. Ocaml a peine plus, si on regarde sa doc en ligne.
A voir, si le C++ "moderne" peut se réduire à moins de 1000 pages...
"La première sécurité est la liberté"