Les arguments sont intéressants, merci, c'est instructif et ça a tout son sens dans les exemples cités qui sont plutôt haut niveau.
Mais j'ai très rarement travaillé en C++ sur des applis haut niveau. A chaque fois il y avait un gros besoin en minimalisant le poids des livrables pour les cibles embarquées (mobiles / Raspberry / équipements industriels), économisant la mémoire (jusqu'aux échanges entre processeur / cache / et mémoire) et garantissant les performances ainsi que la conso réseau (surtout quand on est en 3G / 4G).
Quand c'est plus haut niveau (comme par exemple un moteur 2D / 3D), l'interface, l'ergonomie et les fonctionnalités utilisatrices sont déléguées à des technos plus haut niveau comme C#, Java ou via des modules Node, NDK ou tout simplement exploités par sockets.
A ce niveau d'exigence, on doit tout savoir sur chaque instruction commandée au dispositif.
En effet, les principales techniques d'optimisation reposent sur comment on utilise les choses. Par exemple on privilégiera un tableau de structures à une structure de tableaux, ou l'inverse, selon le cas d'usage qui lui est plus haut niveau. La cohésion est alors un peu pétée mais il y a des techniques pour contraindre l'utilisateur à l'utiliser de telle ou telle manière même s'il doit garder sa part de vigilance en fonction de comment sont faites les choses pour les exploiter au mieux, parfois même il devra adapter son organisation.
Pour l'alignement mémoire, c'est pareil. Est-ce que je dois faire
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class A { public: .... private: auto titi A; auto tata B; }
Mais c'est super bandant ce genre d'évolution, peut-être qu'un jour le C++ pourra permettre de faire des choses haut niveau avec un seul de rentabilité équivalent à du Java ou du C# mais avec ses performances en plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class A { public: .... private: auto tata B; auto titi A; }
C'est pourquoi le concept du "vol de mémoire" est pour moi la plus grande avancée du C++ ces dernière années. Pour le reste, c'est sûrement que ça me fait peur de ne pas avoir la pleine maîtrise de ce qui se passe à niveau matériel mais sur d'autres projets où c'est moins important, ça risque d'être vraiment pas mal ce mot clé "auto".
A bientôt et merci pour cet échange
Partager