OVH Cloud OVH Cloud

tableaux & constantes

1 réponse
Avatar
JBB
Voici un petit programme
#include "stdafx.h"

//un template quelconque
template <int N>
class Tab
{
int tab[N];
};

//un tableau constant
const int valeurs[] = {1,2,3};
//une constante
const int valeur1= liste[0];

int _tmain(int argc, _TCHAR* argv[])
{
Tab<valeur1> monObjet;
//ou directement
Tab<valeurs[0]> monObjet2;
return 0;
}
qui ne compile pas.
valeur1 a beau être une constante elle n'est pas évaluée lors de la
compilation.

Comment m'en sortir? Y a t'il des compilateurs un peu plus malin qui
gèrent ça ?

Pour l'instant je m'en sort en faisant:
//une constante
const int valeur1= 1;
//un tableau constant
const int valeurs[] = {valeur1,2,3};
Mais je trouve ça moins bien.
Dans ce cas
Tab<valeur1> monObjet;
passe tres bien

1 réponse

Avatar
Jean-Marc Bourguet
JBB writes:

Comment m'en sortir? Y a t'il des compilateurs un peu plus malin qui
gèrent ça ?


Ce qui est considere comme une expression constante pour la syntaxe
est bien determine et c'est la meme chose pour tous les compilateurs.
Indexer un tableau meme avec un index constant et un tableau constant
ne fait pas partie de ce qui est permis dans ce cadre.

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org