Pour moi static c'est tout ce qui se passe avant l’exécution du programme.
Bah oui, mais pas pour C++, pour qui static signifie une existance en dehors d'une classe instantiée. Le seul usage qui pourrait correspondre, c'est "static const", mais là, c'est plus le "const" qui est important.
Une partie de la complexité de C++ vient des conventions de nommage, et c'est bien dommage, parce que c'est suffisamment complexe comme ça. La raison de la réutilisation ad nauseam des mêmes mot-clés est évidente (ça permet de limiter au maximum de casser du vieux code qui ne pouvait pas savoir que certains noms de variables pourraient être interdits dans le futur), mais certaines constructions du C++17 ont de quoi faire des nœuds au cerveau, avec des synonymies partielles particulièrement confuses (class <=> typename dans les déclarations de templates, class <=> struct dans les déclarations de classes, typedef <=> using, etc). Du coup, utiliser static avec une signification différente de ce qu'il a ailleurs en C++, ça ne va pas simplifier le système.
[^] # Re: static / constexpr
Posté par arnaudus . En réponse à la dépêche C++17 adapte le static_assert() aux usages. Évalué à 6.
Bah oui, mais pas pour C++, pour qui static signifie une existance en dehors d'une classe instantiée. Le seul usage qui pourrait correspondre, c'est "static const", mais là, c'est plus le "const" qui est important.
Une partie de la complexité de C++ vient des conventions de nommage, et c'est bien dommage, parce que c'est suffisamment complexe comme ça. La raison de la réutilisation ad nauseam des mêmes mot-clés est évidente (ça permet de limiter au maximum de casser du vieux code qui ne pouvait pas savoir que certains noms de variables pourraient être interdits dans le futur), mais certaines constructions du C++17 ont de quoi faire des nœuds au cerveau, avec des synonymies partielles particulièrement confuses (class <=> typename dans les déclarations de templates, class <=> struct dans les déclarations de classes, typedef <=> using, etc). Du coup, utiliser static avec une signification différente de ce qu'il a ailleurs en C++, ça ne va pas simplifier le système.