Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michel Decima
Bonjour,
Est-il possible de regrouper des macros dans une classe, ou un nom d'espace :
namespace Dec { #define N 5 }
Non, ce n'est pas possible avec des macros.
J'ai l'impression que tu veux definir une constante. Dans ce cas, tu devrais plutot utiliser const a la place de define, et alors tu peux placer les constantes dans des namespaces:
namespace Dec { cont int N = 5; }
et utiliser ensuite le symbole Dec::N.
Bonjour,
Est-il possible de regrouper des macros dans une classe, ou un nom
d'espace :
namespace Dec
{
#define N 5
}
Non, ce n'est pas possible avec des macros.
J'ai l'impression que tu veux definir une constante. Dans ce cas, tu
devrais plutot utiliser const a la place de define, et alors tu peux
placer les constantes dans des namespaces:
Est-il possible de regrouper des macros dans une classe, ou un nom d'espace :
namespace Dec { #define N 5 }
Non, ce n'est pas possible avec des macros.
J'ai l'impression que tu veux definir une constante. Dans ce cas, tu devrais plutot utiliser const a la place de define, et alors tu peux placer les constantes dans des namespaces:
namespace Dec { cont int N = 5; }
et utiliser ensuite le symbole Dec::N.
AG
J'ai l'impression que tu veux definir une constante. Dans ce cas, tu devrais plutot utiliser const a la place de define, et alors tu peux placer les constantes dans des namespaces:
namespace Dec { cont int N = 5; }
et utiliser ensuite le symbole Dec::N. Oui c'est un peu ça. mais le problème, c'est que mon code est
réinterprété par un outil, pour lequel l'allocation dynamique de la mémoire n'est pas possible. Donc je ne peux pas utiliser ton Dec::N car mon outil ne reconnait pas
int tab[Dec::N];
il ne reconnait que
int tab[5];
AG.
J'ai l'impression que tu veux definir une constante. Dans ce cas, tu
devrais plutot utiliser const a la place de define, et alors tu peux
placer les constantes dans des namespaces:
namespace Dec {
cont int N = 5;
}
et utiliser ensuite le symbole Dec::N.
Oui c'est un peu ça. mais le problème, c'est que mon code est
réinterprété par un outil, pour lequel l'allocation dynamique de la
mémoire n'est pas possible. Donc je ne peux pas utiliser ton Dec::N
car mon outil ne reconnait pas
J'ai l'impression que tu veux definir une constante. Dans ce cas, tu devrais plutot utiliser const a la place de define, et alors tu peux placer les constantes dans des namespaces:
namespace Dec { cont int N = 5; }
et utiliser ensuite le symbole Dec::N. Oui c'est un peu ça. mais le problème, c'est que mon code est
réinterprété par un outil, pour lequel l'allocation dynamique de la mémoire n'est pas possible. Donc je ne peux pas utiliser ton Dec::N car mon outil ne reconnait pas
int tab[Dec::N];
il ne reconnait que
int tab[5];
AG.
Fabien LE LEZ
On Fri, 13 Jul 2007 15:52:14 +0200, "AG" :
car mon outil ne reconnait pas
int tab[Dec::N];
Mauvais outil, changer outil. En C++, une constante est reconnue comme telle par le compilateur, et int tab[Dec::N]; est équivalent à int tab[5];
Note par ailleurs que, dans certains cas, un compilateur un peu vieux appréciera mieux un
enum { N= 5 };
On Fri, 13 Jul 2007 15:52:14 +0200, "AG" <ag@tb.fr>:
car mon outil ne reconnait pas
int tab[Dec::N];
Mauvais outil, changer outil.
En C++, une constante est reconnue comme telle par le compilateur, et
int tab[Dec::N];
est équivalent à
int tab[5];
Note par ailleurs que, dans certains cas, un compilateur un peu vieux
appréciera mieux un
Mauvais outil, changer outil. En C++, une constante est reconnue comme telle par le compilateur, et int tab[Dec::N]; est équivalent à int tab[5];
Note par ailleurs que, dans certains cas, un compilateur un peu vieux appréciera mieux un
enum { N= 5 };
James Kanze
On Jul 13, 8:41 pm, Fabien LE LEZ wrote:
On Fri, 13 Jul 2007 15:52:14 +0200, "AG" :
car mon outil ne reconnait pas
int tab[Dec::N];
Mauvais outil, changer outil.
Si j'ai bien compris, son outil travaille sur la sortie du préprocesseur. Écrire un petit outil qui reconnaît un sous-ensemble très restraint des déclarations C++, c'est une chose. Écrire un outil qui parse tout le C++, pour pouvoir évaluer les expressions integrales constantes, c'est un autre. (J'ai un outil qui parse les enum, pour en générer les tableaux ou les fonctions de conversion entre l'enum et des chaînes. Je n'y essaie pas d'interprêter ce qui est à gauche du =, s'il y en a ; je me contente de le sauter, en avançant au prochain , ou } qui n'est ni quoté, ni dans des parenthèses.)
En C++, une constante est reconnue comme telle par le compilateur, et int tab[Dec::N]; est équivalent à int tab[5];
Certes, mais tu ne vas pas prétendre qu'il faut écrire un compilateur C++ complet chaque fois qu'on veut traiter un peu de code source.
-- James Kanze (Gabi Software) email: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
On Jul 13, 8:41 pm, Fabien LE LEZ <grams...@gramster.com> wrote:
On Fri, 13 Jul 2007 15:52:14 +0200, "AG" <a...@tb.fr>:
car mon outil ne reconnait pas
int tab[Dec::N];
Mauvais outil, changer outil.
Si j'ai bien compris, son outil travaille sur la sortie du
préprocesseur. Écrire un petit outil qui reconnaît un
sous-ensemble très restraint des déclarations C++, c'est une
chose. Écrire un outil qui parse tout le C++, pour pouvoir
évaluer les expressions integrales constantes, c'est un autre.
(J'ai un outil qui parse les enum, pour en générer les tableaux
ou les fonctions de conversion entre l'enum et des chaînes. Je
n'y essaie pas d'interprêter ce qui est à gauche du =, s'il y en
a ; je me contente de le sauter, en avançant au prochain
, ou } qui n'est ni quoté, ni dans des parenthèses.)
En C++, une constante est reconnue comme telle par le compilateur, et
int tab[Dec::N];
est équivalent à
int tab[5];
Certes, mais tu ne vas pas prétendre qu'il faut écrire un
compilateur C++ complet chaque fois qu'on veut traiter un peu de
code source.
--
James Kanze (Gabi Software) email: james.kanze@gmail.com
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Si j'ai bien compris, son outil travaille sur la sortie du préprocesseur. Écrire un petit outil qui reconnaît un sous-ensemble très restraint des déclarations C++, c'est une chose. Écrire un outil qui parse tout le C++, pour pouvoir évaluer les expressions integrales constantes, c'est un autre. (J'ai un outil qui parse les enum, pour en générer les tableaux ou les fonctions de conversion entre l'enum et des chaînes. Je n'y essaie pas d'interprêter ce qui est à gauche du =, s'il y en a ; je me contente de le sauter, en avançant au prochain , ou } qui n'est ni quoté, ni dans des parenthèses.)
En C++, une constante est reconnue comme telle par le compilateur, et int tab[Dec::N]; est équivalent à int tab[5];
Certes, mais tu ne vas pas prétendre qu'il faut écrire un compilateur C++ complet chaque fois qu'on veut traiter un peu de code source.
-- James Kanze (Gabi Software) email: Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34