On lis continuellement cette rengaine « faut regarder le C++11/14/17/... », mais tu ne peux pas nous dire que C++ c'est bien parce qu'il a un écosystème qui est là depuis super longtemps et demander de ne pas juger les anciens standards. Si tu t'interface avec du code qui est en C++98, alors tu peux pas te permettre d'oublier cette version.
Alors déjà question rengaine, Rust a aussi un niveau honorable : https://www.reddit.com/r/rust/comments/62gzio/psa_please_stop_asking_other_projects_to_convert/. Ensuite, le "C++ moderne" c'est C++11 et ça fait déjà 7 ans. C'est pas non plus du moderne de la semaine dernière et depuis le temps il commence à y avoir pas mal de bonnes libs en "C++ moderne". Et si vraiment tu dois t'interfacer avec du vieux C++ dégueu ou même du C, bah tu fais comme tout développeur normal et tu codes une classe ou quelques fonctions qui l'encapsule proprement et limite le couplage de code.
D'autre pars comment est-ce que je peux savoir que mon code est bien en C++XX (XX étant la version que tu préfère évaluer) ? Il existe des linters qui te permettent de t'assurer de faire de la RAII par exemple ? Parce que sinon tu viens juste de nous dire qu'il n'y a pas de problème de gestion non sûre de la mémoire parce que si les développeurs font attention il n'y a pas de problème...
Pour la gestion mémoire, en statique : cppcheck, en dynamique : valgrind; et il doit y en avoir plein d'autres. Concernant le RAII, pointeur intelligent, move-semantic tout ça, le compilateur détecte et garantie effectivement pas mal de choses. Après quand on commence à taper dans le bas-niveau, on perd forcément beaucoup de garanties et c'est aussi le cas avec Rust sur les sections unsafe.
[^] # Re: Les avantages de C++ ne sont pas bien différentes avec Rust
Posté par nokomprendo . En réponse à la dépêche Faut‐il continuer à apprendre le C++ ?. Évalué à 1.
Alors déjà question rengaine, Rust a aussi un niveau honorable : https://www.reddit.com/r/rust/comments/62gzio/psa_please_stop_asking_other_projects_to_convert/. Ensuite, le "C++ moderne" c'est C++11 et ça fait déjà 7 ans. C'est pas non plus du moderne de la semaine dernière et depuis le temps il commence à y avoir pas mal de bonnes libs en "C++ moderne". Et si vraiment tu dois t'interfacer avec du vieux C++ dégueu ou même du C, bah tu fais comme tout développeur normal et tu codes une classe ou quelques fonctions qui l'encapsule proprement et limite le couplage de code.
Pour la gestion mémoire, en statique : cppcheck, en dynamique : valgrind; et il doit y en avoir plein d'autres. Concernant le RAII, pointeur intelligent, move-semantic tout ça, le compilateur détecte et garantie effectivement pas mal de choses. Après quand on commence à taper dans le bas-niveau, on perd forcément beaucoup de garanties et c'est aussi le cas avec Rust sur les sections unsafe.