Ainsi par exemple std::span ne propose même pas d'API d'accès avec indices vérifiés, ce qui est selon moi et vu ce que j'ai exposé précédemment, profondément ridicule.
Il n'y en a pas parce que dans quelques temps (probablement C++23), il y aura les contrats qui permettront de vérifier les indices au bon endroit (c'est-à-dire dans le code appelant puisqu'avoir un bon indice est une pré-condition). Donc, le comité a décidé de ne pas ajouter une fonction (genre at) qui ne servira plus à rien bientôt.
Sur le reste, je ne vois pas trop où tu veux en venir. C++ évolue aussi dans le bon sens. Par exemple, les entiers sont dorénavant considérés comme étant codés en complément à 2, ce qui était une scorie de l'époque où C a été standardisé. Depuis C++11, il y a un modèle mémoire pour faire du multithread.
Sur les analyses statiques, il y a tout un tas d'outils et il y en a de plus en plus tous les jours. Par exemple on a la technique proposée par Herb Sutter qui est le chef du comité de normalisation, cette technique qui permet de faire des vérification sur l'utilisation de la mémoire est déjà implémenté dans clang. Certes, ce n'est pas au niveau de certains autres langages mais c'est un bon pas en avant.
Après, il ne faut pas se leurrer, C++ n'est pas fait pour être un langage «safe». Il est utilisé dans des contextes où, justement, le fait de pouvoir faire des choses à la limite du raisonnable est une fonctionnalité indispensable.
Quant à la mort prédite de nombreuses fois de C++, je pense qu'il suffit de regarder la courbe du nombre de papiers soumis à chaque réunion du comité de normalisation ou du nombres de présents à ces réunions (ça monte en flèche depuis 10 ans) pour se dire que c'est un langage bien vivant et en pleine forme (et en pleine ébullition). Le comparer à COBOL est un joli troll.
# Joli lancer !
Posté par rewind (Mastodon) . En réponse au journal Le glissement du C++ (et dans une moindre mesure du C) vers une position indésirable. Évalué à 7.
Je vais d'abord corriger une inexactitude.
Il n'y en a pas parce que dans quelques temps (probablement C++23), il y aura les contrats qui permettront de vérifier les indices au bon endroit (c'est-à-dire dans le code appelant puisqu'avoir un bon indice est une pré-condition). Donc, le comité a décidé de ne pas ajouter une fonction (genre at) qui ne servira plus à rien bientôt.
Sur le reste, je ne vois pas trop où tu veux en venir. C++ évolue aussi dans le bon sens. Par exemple, les entiers sont dorénavant considérés comme étant codés en complément à 2, ce qui était une scorie de l'époque où C a été standardisé. Depuis C++11, il y a un modèle mémoire pour faire du multithread.
Sur les analyses statiques, il y a tout un tas d'outils et il y en a de plus en plus tous les jours. Par exemple on a la technique proposée par Herb Sutter qui est le chef du comité de normalisation, cette technique qui permet de faire des vérification sur l'utilisation de la mémoire est déjà implémenté dans clang. Certes, ce n'est pas au niveau de certains autres langages mais c'est un bon pas en avant.
Après, il ne faut pas se leurrer, C++ n'est pas fait pour être un langage «safe». Il est utilisé dans des contextes où, justement, le fait de pouvoir faire des choses à la limite du raisonnable est une fonctionnalité indispensable.
Quant à la mort prédite de nombreuses fois de C++, je pense qu'il suffit de regarder la courbe du nombre de papiers soumis à chaque réunion du comité de normalisation ou du nombres de présents à ces réunions (ça monte en flèche depuis 10 ans) pour se dire que c'est un langage bien vivant et en pleine forme (et en pleine ébullition). Le comparer à COBOL est un joli troll.