@Lolilolight :
Lorsque Médinoc dit que cela ne peut pas être utilisé dans un switch/template ou autre, c'est dans le cas où, votre template/switch n'est pas dans le même fichier que là, où vous déterminez Test::size.
On en revient aux problème d'édition de lien, d'unité de compilation et les problèmes auxquels j'avais fait face, en page une.
Au final, vous êtes revenu, en page 3, à la solution que j'ai proposé en page une et pour laquelle, je n'arrivais pas à saisir pourquoi cela marchait. En effet, mon premier test était un test minimaliste où j'avais tout mis dans la même unité de compilation et donc, que j'avais aucune soucis de disponibilité des variables. Mais, les soucis reviennent, lorsque vous voulez utiliser sizeof(Test::tableau) dans plusieurs autres fichiers.
De plus, il faut faire attention à ne pas mettre dans le .h les initialisations, sinon, elles sont compilés plusieurs fois (dans chaque .o d'un .c utilisant le .h en question). C'est une erreur pourtant classique dû à la séparation de la compilation des différent .c.
Partager