Quand je programme en C++ en utilisant les outils qui ne sont pas présents pour des raisons de compatibilité avec le C (par exemple, les auto_ptr/unique_ptr, les cast propres, etc), le compilateur me préviens souvent quand je vais faire une erreur (et encore plus depuis unique_ptr).
Par contre, quand j'utilise la STL pour rendre du C (histo) plus lisible, plus simple à maintenir, il ne me spam pas de warning parce que j'utilise des pointeurs.
Le C++ donne le choix, d'avoir plus de sécurité que le C, ou pas.
Par contre, si tu veux dire que le C++ devrais warn quand on utilise des cast C-style, des scanf, des printf ou des pointeurs nus... je suis partiellement d'accord.
Il ne reste maintenant plus qu'à définir quel est l'héritage du C que l'on doit considérer dangereux. Tâche titanesque si tu veux mon opinion, parce que personne ne sera d'accord (surtout compte tenu du fait qu'en C++11 on était encore obligé d'utiliser des pointeurs nus. Je n'ai pas regardé si C++14 à un équivalent de shared_ptr pour les unique_ptr. Et personnellement, je n'apprécierais pas que *printf me génère des warning, je me sers souvent de ces fonctions, et elles ne supportent pas les std::string. Cout est plutôt une alternative à puts, amha).
[^] # Re: Comparaison ?
Posté par freem . En réponse au journal Journal Bookmark #2. Évalué à 3.
Quand je programme en C++ en utilisant les outils qui ne sont pas présents pour des raisons de compatibilité avec le C (par exemple, les auto_ptr/unique_ptr, les cast propres, etc), le compilateur me préviens souvent quand je vais faire une erreur (et encore plus depuis unique_ptr).
Par contre, quand j'utilise la STL pour rendre du C (histo) plus lisible, plus simple à maintenir, il ne me spam pas de warning parce que j'utilise des pointeurs.
Le C++ donne le choix, d'avoir plus de sécurité que le C, ou pas.
Par contre, si tu veux dire que le C++ devrais warn quand on utilise des cast C-style, des scanf, des printf ou des pointeurs nus... je suis partiellement d'accord.
Il ne reste maintenant plus qu'à définir quel est l'héritage du C que l'on doit considérer dangereux. Tâche titanesque si tu veux mon opinion, parce que personne ne sera d'accord (surtout compte tenu du fait qu'en C++11 on était encore obligé d'utiliser des pointeurs nus. Je n'ai pas regardé si C++14 à un équivalent de shared_ptr pour les unique_ptr. Et personnellement, je n'apprécierais pas que *printf me génère des warning, je me sers souvent de ces fonctions, et elles ne supportent pas les std::string. Cout est plutôt une alternative à puts, amha).