Pour information, VLA est le nom pour le langage C. En C++, nous devrions dire Runtime-Sized Arrays.
Mais bon, VLA est le nom le plus connu. Même les membres du comité de normalisation du C++ disent VLA.
Du coup, moi aussi je dis VLA (ne multiplions pas les noms qui désignent un peu près la même chose).
Et puis finalement, retour en arrière. Il me semble que les VLA n'ont pas été intégrés car le risque est trop grand d'allouer plus d'espace que l'espace libre disponible dans la pile d'appel.
Par contre, le std::dynarray a bien été adopté pour C++14 et permet aussi d'allouer sur la pile.
Ce qu'il faut retenir, c'est que le comité de normalisation du C++ a tendance à ne pas intégrer ce qui est bugogène (error prone).
Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)
[^] # Re: What you see is not what you get
Posté par Oliver (site web personnel) . En réponse à la dépêche C++ se court-circuite le constructeur de copie. Évalué à 2.
Pour information, VLA est le nom pour le langage C. En C++, nous devrions dire Runtime-Sized Arrays.
Mais bon, VLA est le nom le plus connu. Même les membres du comité de normalisation du C++ disent VLA.
Du coup, moi aussi je dis VLA (ne multiplions pas les noms qui désignent un peu près la même chose).
En 2013, le comité a d'abord adopté les VLA (appelé Runtime-sized arrays with automatic storage duration)
https://isocpp.org/blog/2013/04/n3639-runtime-sized-arrays-with-automatic-storage-duration
Et puis finalement, retour en arrière. Il me semble que les VLA n'ont pas été intégrés car le risque est trop grand d'allouer plus d'espace que l'espace libre disponible dans la pile d'appel.
Par contre, le
std::dynarraya bien été adopté pour C++14 et permet aussi d'allouer sur la pile.Ce qu'il faut retenir, c'est que le comité de normalisation du C++ a tendance à ne pas intégrer ce qui est bugogène (error prone).
Commentaire sous licence Creative Commons Zero CC0 1.0 Universal (Public Domain Dedication)