C'est quand même un chouilla plus complexe. Le C++ est un langage très souple, et on peut en faire à peu près n'importe quoi tant qu'on respecte la syntaxe de base. Par exemple, rien n'oblige à utiliser des classes, ni à utiliser la STL. Inversement, des mécanismes pourtant basiques ne sont pas inclus dans le standard, par exemple les directives préprocesseur pour éviter d'inclure plusieurs fois les headers.
Bref, un langage ne peut pas te prémunir contre le fait de coder n'importe comment. Ce qu'on peut reprocher au C++, c'est de ne même pas définir la manière correcte de faire les choses, ce qui fait qu'il n'est jamais clair si on fait les choses correctement ou non. Surtout qu'une manière correcte de faire va devenir incorrecte avec l'évolution du standard, ce genre de choses.
[^] # Re: Donc pour résumer...
Posté par arnaudus . En réponse à la dépêche C++17, Genèse d’une version mineure. Évalué à 4.
C'est quand même un chouilla plus complexe. Le C++ est un langage très souple, et on peut en faire à peu près n'importe quoi tant qu'on respecte la syntaxe de base. Par exemple, rien n'oblige à utiliser des classes, ni à utiliser la STL. Inversement, des mécanismes pourtant basiques ne sont pas inclus dans le standard, par exemple les directives préprocesseur pour éviter d'inclure plusieurs fois les headers.
Bref, un langage ne peut pas te prémunir contre le fait de coder n'importe comment. Ce qu'on peut reprocher au C++, c'est de ne même pas définir la manière correcte de faire les choses, ce qui fait qu'il n'est jamais clair si on fait les choses correctement ou non. Surtout qu'une manière correcte de faire va devenir incorrecte avec l'évolution du standard, ce genre de choses.