1) Est ce que c'est, d'apres vous, une "bonne" facon de faire?
2) Si oui (mais je pense que non), j'ai un pb:
ABSOLUTE est deja declaree comme constantes dans certains headers ce qui
donne apres le preproceseur:
enum MON_ENUM
{
1 = 0,
SEMI_RELATIVE = 1,
RELATIVE = 2
};
ce qui ne marche pas forcement tres bien..;-)
Qq1 parmi vous aurait il un conseil pour eviter ce genre de problemes?
En esperant que ma question ne soit pas trop con...
On Wed, 15 Oct 2003 01:40:58 +0200, "Sylvain Togni" wrote:
Je rajouterai également qu'une bonne habitude à prendre est de réserver les noms tout en majuscules aux macros. Comme ça plus de problèmes de ce genre.
Les noms tout en majuscules sont réservés aux constantes. Pour les macros, quand je dois vraiment en mettre une, je le spécifie clairement :
On Wed, 15 Oct 2003 01:40:58 +0200, "Sylvain Togni"
<sylvain.togni@wanadoo.fr> wrote:
Je rajouterai également qu'une bonne habitude à prendre est de
réserver les noms tout en majuscules aux macros. Comme ça plus de
problèmes de ce genre.
Les noms tout en majuscules sont réservés aux constantes. Pour les
macros, quand je dois vraiment en mettre une, je le spécifie
clairement :
On Wed, 15 Oct 2003 01:40:58 +0200, "Sylvain Togni" wrote:
Je rajouterai également qu'une bonne habitude à prendre est de réserver les noms tout en majuscules aux macros. Comme ça plus de problèmes de ce genre.
Les noms tout en majuscules sont réservés aux constantes. Pour les macros, quand je dois vraiment en mettre une, je le spécifie clairement :
En fait, ABSOLUTE n'est pas déclarée comme une cosntante, sinon, çe ne poserait pas de problème. ABSOLUTE doit être une macro, Oui, pardon..;-(
qui se moque totalement des règles de portée. C'est d'ailleurs une des raisons principales pourquoi on préfère les constantes aux macros.
Si tu as accès à la définition d'ABSOLUTE, remplace un truc genre : #define ABSOLUTE 42
par : int const ABSOLUTE = 42; En fait c'est dans un header windows qui est inclus par la bonte du st
esprit...;-( En definissant des symboles a la compilation ca permet d'eviter mon probleme. Mais il se posera forcement plus tard en utilisant d'autres libs....
Sinon, remplace le nom de ta valeur d'énum par autre chose. Tu peux par exemple la préfixer par 1 ou 2 lettre qui rappelle le type d'énum associé. C'est ce que je vais faire mais je trouve ca dommage de "perdre"
certains noms uniquement parce qu'ils sont definis avant...
Merci pour la reponse, Benoit
Loïc Joly wrote:
blc wrote:
En fait, ABSOLUTE n'est pas déclarée comme une cosntante, sinon, çe ne
poserait pas de problème. ABSOLUTE doit être une macro,
Oui, pardon..;-(
qui se moque
totalement des règles de portée. C'est d'ailleurs une des raisons
principales pourquoi on préfère les constantes aux macros.
Si tu as accès à la définition d'ABSOLUTE, remplace un truc genre :
#define ABSOLUTE 42
par :
int const ABSOLUTE = 42;
En fait c'est dans un header windows qui est inclus par la bonte du st
esprit...;-(
En definissant des symboles a la compilation ca permet d'eviter mon
probleme. Mais il se posera forcement plus tard en utilisant d'autres
libs....
Sinon, remplace le nom de ta valeur d'énum par autre chose. Tu peux par
exemple la préfixer par 1 ou 2 lettre qui rappelle le type d'énum associé.
C'est ce que je vais faire mais je trouve ca dommage de "perdre"
certains noms uniquement parce qu'ils sont definis avant...
En fait, ABSOLUTE n'est pas déclarée comme une cosntante, sinon, çe ne poserait pas de problème. ABSOLUTE doit être une macro, Oui, pardon..;-(
qui se moque totalement des règles de portée. C'est d'ailleurs une des raisons principales pourquoi on préfère les constantes aux macros.
Si tu as accès à la définition d'ABSOLUTE, remplace un truc genre : #define ABSOLUTE 42
par : int const ABSOLUTE = 42; En fait c'est dans un header windows qui est inclus par la bonte du st
esprit...;-( En definissant des symboles a la compilation ca permet d'eviter mon probleme. Mais il se posera forcement plus tard en utilisant d'autres libs....
Sinon, remplace le nom de ta valeur d'énum par autre chose. Tu peux par exemple la préfixer par 1 ou 2 lettre qui rappelle le type d'énum associé. C'est ce que je vais faire mais je trouve ca dommage de "perdre"
certains noms uniquement parce qu'ils sont definis avant...
Merci pour la reponse, Benoit
kanze
Fabien LE LEZ wrote in message news:...
On Wed, 15 Oct 2003 01:40:58 +0200, "Sylvain Togni" wrote:
Je rajouterai également qu'une bonne habitude à prendre est de réserver les noms tout en majuscules aux macros. Comme ça plus de problèmes de ce genre.
Les noms tout en majuscules sont réservés aux constantes.
En C, les noms tout en majuscules étaient réservés aux constantes parce que les constantes étaient des macros.
Moi, je n'oublie pas que les constantes des uns sont des variables des autres (et combien de fois est-ce que mes constantes sont devenues des variables initialisées depuis un fichier de configuration). En gros, ma convention de nommage separe les noms en trois groupes :
- tout majuscule : des macros (à part T, T1, etc. comme paramètres de template),
- première lettre majuscule, suivi des minuscules : les noms de type, et
- première lettre minuscule, suivi des minuscules : toute la reste.
C'est une convention comme une autre ; je m'adapte à ce que veut le client. Mais je n'aime pas les conventions qui distinguent entre les constantes et les autres variables, parce que d'après l'expérience, les constantes finissent toujours par ne plus l'être.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
Fabien LE LEZ <gramster@gramster.com> wrote in message
news:<gg3povcsalvekfp78paohoal3p8lq1klbs@4ax.com>...
On Wed, 15 Oct 2003 01:40:58 +0200, "Sylvain Togni"
<sylvain.togni@wanadoo.fr> wrote:
Je rajouterai également qu'une bonne habitude à prendre est de
réserver les noms tout en majuscules aux macros. Comme ça plus de
problèmes de ce genre.
Les noms tout en majuscules sont réservés aux constantes.
En C, les noms tout en majuscules étaient réservés aux constantes parce
que les constantes étaient des macros.
Moi, je n'oublie pas que les constantes des uns sont des variables des
autres (et combien de fois est-ce que mes constantes sont devenues des
variables initialisées depuis un fichier de configuration). En gros, ma
convention de nommage separe les noms en trois groupes :
- tout majuscule : des macros (à part T, T1, etc. comme paramètres de
template),
- première lettre majuscule, suivi des minuscules : les noms de type,
et
- première lettre minuscule, suivi des minuscules : toute la reste.
C'est une convention comme une autre ; je m'adapte à ce que veut le
client. Mais je n'aime pas les conventions qui distinguent entre les
constantes et les autres variables, parce que d'après l'expérience, les
constantes finissent toujours par ne plus l'être.
--
James Kanze GABI Software mailto:kanze@gabi-soft.fr
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
On Wed, 15 Oct 2003 01:40:58 +0200, "Sylvain Togni" wrote:
Je rajouterai également qu'une bonne habitude à prendre est de réserver les noms tout en majuscules aux macros. Comme ça plus de problèmes de ce genre.
Les noms tout en majuscules sont réservés aux constantes.
En C, les noms tout en majuscules étaient réservés aux constantes parce que les constantes étaient des macros.
Moi, je n'oublie pas que les constantes des uns sont des variables des autres (et combien de fois est-ce que mes constantes sont devenues des variables initialisées depuis un fichier de configuration). En gros, ma convention de nommage separe les noms en trois groupes :
- tout majuscule : des macros (à part T, T1, etc. comme paramètres de template),
- première lettre majuscule, suivi des minuscules : les noms de type, et
- première lettre minuscule, suivi des minuscules : toute la reste.
C'est une convention comme une autre ; je m'adapte à ce que veut le client. Mais je n'aime pas les conventions qui distinguent entre les constantes et les autres variables, parce que d'après l'expérience, les constantes finissent toujours par ne plus l'être.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
Guillaume Gourdin
Pourquoi pas, je ne vois pas trop pourquoi l'énum est dans une class, mais il y a probablement une bonne raison dans le reste du programme
Une raison possible est que l'enum n'est utilisé qu'en interne à la classe. Il est donc privé, ce qui limite les risques de collisions de noms.
Pourquoi pas, je ne vois pas trop pourquoi l'énum est dans une class,
mais il y a probablement une bonne raison dans le reste du programme
Une raison possible est que l'enum n'est utilisé qu'en interne à la classe.
Il est donc privé, ce qui limite les risques de collisions de noms.
Pourquoi pas, je ne vois pas trop pourquoi l'énum est dans une class, mais il y a probablement une bonne raison dans le reste du programme
Une raison possible est que l'enum n'est utilisé qu'en interne à la classe. Il est donc privé, ce qui limite les risques de collisions de noms.
Michel Michaud
Dans news:,
client. Mais je n'aime pas les conventions qui distinguent entre les constantes et les autres variables, parce que d'après l'expérience, les constantes finissent toujours par ne plus l'être.
Si tu y penses bien, on pourrait appliquer ton raisonnement pour dire qu'il faut absolument différencier les constantes des variables, justement pour voir quand ça change ! Personnellement j'utilise les majuscules pour les constantes pour des raisons pédagogiques -- et je n'ai jamais eu de problème -- mais je comprends l'utilité de ne pas faire ainsi.
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Dans news:d6652001.0310150024.3592b2bf@posting.google.com,
client. Mais je n'aime pas les conventions qui distinguent entre les
constantes et les autres variables, parce que d'après l'expérience,
les constantes finissent toujours par ne plus l'être.
Si tu y penses bien, on pourrait appliquer ton raisonnement pour
dire qu'il faut absolument différencier les constantes des variables,
justement pour voir quand ça change ! Personnellement j'utilise les
majuscules pour les constantes pour des raisons pédagogiques -- et je
n'ai jamais eu de problème -- mais je comprends l'utilité de ne pas
faire ainsi.
--
Michel Michaud mm@gdzid.com
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
client. Mais je n'aime pas les conventions qui distinguent entre les constantes et les autres variables, parce que d'après l'expérience, les constantes finissent toujours par ne plus l'être.
Si tu y penses bien, on pourrait appliquer ton raisonnement pour dire qu'il faut absolument différencier les constantes des variables, justement pour voir quand ça change ! Personnellement j'utilise les majuscules pour les constantes pour des raisons pédagogiques -- et je n'ai jamais eu de problème -- mais je comprends l'utilité de ne pas faire ainsi.
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Sylvain Togni
Je rajouterai également qu'une bonne habitude à prendre est de réserver les noms tout en majuscules aux macros. Comme ça plus de problèmes de ce genre.
Les noms tout en majuscules sont réservés aux constantes.
Quel est l'intêret de distinguer les constantes des autre varaibles ?
-- Sylvain
Je rajouterai également qu'une bonne habitude à prendre est de
réserver les noms tout en majuscules aux macros. Comme ça plus de
problèmes de ce genre.
Les noms tout en majuscules sont réservés aux constantes.
Quel est l'intêret de distinguer les constantes des autre varaibles ?
Je rajouterai également qu'une bonne habitude à prendre est de réserver les noms tout en majuscules aux macros. Comme ça plus de problèmes de ce genre.
Les noms tout en majuscules sont réservés aux constantes.
Quel est l'intêret de distinguer les constantes des autre varaibles ?
-- Sylvain
Loïc Joly
blc wrote:
Loïc Joly wrote: [...]
Si tu as accès à la définition d'ABSOLUTE, remplace un truc genre : #define ABSOLUTE 42
par : int const ABSOLUTE = 42;
En fait c'est dans un header windows qui est inclus par la bonte du st esprit...;-( En definissant des symboles a la compilation ca permet d'eviter mon probleme. Mais il se posera forcement plus tard en utilisant d'autres libs....
Peut être qu'un #undef ABSOLUTE juste après les #include de tous les fichiers windows est une autre solution...
-- Loïc
blc wrote:
Loïc Joly wrote:
[...]
Si tu as accès à la définition d'ABSOLUTE, remplace un truc genre :
#define ABSOLUTE 42
par :
int const ABSOLUTE = 42;
En fait c'est dans un header windows qui est inclus par la bonte du st
esprit...;-(
En definissant des symboles a la compilation ca permet d'eviter mon
probleme. Mais il se posera forcement plus tard en utilisant d'autres
libs....
Peut être qu'un #undef ABSOLUTE juste après les #include de tous les
fichiers windows est une autre solution...
Si tu as accès à la définition d'ABSOLUTE, remplace un truc genre : #define ABSOLUTE 42
par : int const ABSOLUTE = 42;
En fait c'est dans un header windows qui est inclus par la bonte du st esprit...;-( En definissant des symboles a la compilation ca permet d'eviter mon probleme. Mais il se posera forcement plus tard en utilisant d'autres libs....
Peut être qu'un #undef ABSOLUTE juste après les #include de tous les fichiers windows est une autre solution...
-- Loïc
kanze
"Michel Michaud" wrote in message news:<REejb.7443$...
Dans news:,
client. Mais je n'aime pas les conventions qui distinguent entre les constantes et les autres variables, parce que d'après l'expérience, les constantes finissent toujours par ne plus l'être.
Si tu y penses bien, on pourrait appliquer ton raisonnement pour dire qu'il faut absolument différencier les constantes des variables, justement pour voir quand ça change !
Et avoir à modifier toutes les utilisations. En revanche, une personne m'a déjà dit que les « constantes » initialisées depuis un fichier de configuration était encore logiquement des constantes (sauf évidemment pour le code d'initialisation), et donc, qu'elles devaient toujours porter des noms des constantes.
Personnellement j'utilise les majuscules pour les constantes pour des raisons pédagogiques -- et je n'ai jamais eu de problème -- mais je comprends l'utilité de ne pas faire ainsi.
J'espère seulement que quand tu présentes tes conventions dans le cours, tu dis bien, ne serait-ce qu'en passant, que d'autres conventions existent, et que tout le monde ne distingue pas les constantes des autres variables par des conventions de nommage.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
"Michel Michaud" <mm@gdzid.com> wrote in message
news:<REejb.7443$PM2.792448@news20.bellglobal.com>...
Dans news:d6652001.0310150024.3592b2bf@posting.google.com,
client. Mais je n'aime pas les conventions qui distinguent entre les
constantes et les autres variables, parce que d'après l'expérience,
les constantes finissent toujours par ne plus l'être.
Si tu y penses bien, on pourrait appliquer ton raisonnement pour dire
qu'il faut absolument différencier les constantes des variables,
justement pour voir quand ça change !
Et avoir à modifier toutes les utilisations. En revanche, une personne
m'a déjà dit que les « constantes » initialisées depuis un fichier de
configuration était encore logiquement des constantes (sauf évidemment
pour le code d'initialisation), et donc, qu'elles devaient toujours
porter des noms des constantes.
Personnellement j'utilise les majuscules pour les constantes pour des
raisons pédagogiques -- et je n'ai jamais eu de problème -- mais je
comprends l'utilité de ne pas faire ainsi.
J'espère seulement que quand tu présentes tes conventions dans le cours,
tu dis bien, ne serait-ce qu'en passant, que d'autres conventions
existent, et que tout le monde ne distingue pas les constantes des
autres variables par des conventions de nommage.
--
James Kanze GABI Software mailto:kanze@gabi-soft.fr
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
"Michel Michaud" wrote in message news:<REejb.7443$...
Dans news:,
client. Mais je n'aime pas les conventions qui distinguent entre les constantes et les autres variables, parce que d'après l'expérience, les constantes finissent toujours par ne plus l'être.
Si tu y penses bien, on pourrait appliquer ton raisonnement pour dire qu'il faut absolument différencier les constantes des variables, justement pour voir quand ça change !
Et avoir à modifier toutes les utilisations. En revanche, une personne m'a déjà dit que les « constantes » initialisées depuis un fichier de configuration était encore logiquement des constantes (sauf évidemment pour le code d'initialisation), et donc, qu'elles devaient toujours porter des noms des constantes.
Personnellement j'utilise les majuscules pour les constantes pour des raisons pédagogiques -- et je n'ai jamais eu de problème -- mais je comprends l'utilité de ne pas faire ainsi.
J'espère seulement que quand tu présentes tes conventions dans le cours, tu dis bien, ne serait-ce qu'en passant, que d'autres conventions existent, et que tout le monde ne distingue pas les constantes des autres variables par des conventions de nommage.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
Michel Michaud
Dans news:bmk9ql$jlr$, Sylvain
Quel est l'intêret de distinguer les constantes des autre varaibles ?
Pouvoir distinguer facilement les constantes des autres variables ?
(Faciliter la compréhension du code. Quel est l'intérêt d'avoir des identificateurs significatifs ? ...)
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Dans news:bmk9ql$jlr$1@news-reader4.wanadoo.fr, Sylvain
Quel est l'intêret de distinguer les constantes des autre varaibles
?
Pouvoir distinguer facilement les constantes des autres variables ?
(Faciliter la compréhension du code. Quel est l'intérêt d'avoir
des identificateurs significatifs ? ...)
--
Michel Michaud mm@gdzid.com
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Quel est l'intêret de distinguer les constantes des autre varaibles ?
Pouvoir distinguer facilement les constantes des autres variables ?
(Faciliter la compréhension du code. Quel est l'intérêt d'avoir des identificateurs significatifs ? ...)
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Michel Michaud
Dans news:,
"Michel Michaud" wrote in message news:<REejb.7443$...
Dans news:,
client. Mais je n'aime pas les conventions qui distinguent entre les constantes et les autres variables, parce que d'après l'expérience, les constantes finissent toujours par ne plus l'être.
Si tu y penses bien, on pourrait appliquer ton raisonnement pour dire qu'il faut absolument différencier les constantes des variables, justement pour voir quand ça change !
Et avoir à modifier toutes les utilisations. En revanche, une personne m'a déjà dit que les « constantes » initialisées depuis un fichier de configuration était encore logiquement des constantes (sauf évidemment pour le code d'initialisation), et donc, qu'elles devaient toujours porter des noms des constantes.
C'est assez logique. Quel est le problème ?
[...]
J'espère seulement que quand tu présentes tes conventions dans le cours, tu dis bien, ne serait-ce qu'en passant, que d'autres conventions existent, et que tout le monde ne distingue pas les constantes des autres variables par des conventions de nommage.
Bien entendu.
Même sur mon site (http://www.gdzid.com/Cplusplus.html), on peut lire « Les règles qu'on a choisies ne sont pas universelles : certaines compagnies peuvent imposer des règles en contradiction complète dans certains cas. ».
En fait, je vois bien plus souvent l'idée de ne pas mettre les constantes en majuscules présentée sans nuance...
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Dans news:d6652001.0310160126.1d41a8b2@posting.google.com,
"Michel Michaud" <mm@gdzid.com> wrote in message
news:<REejb.7443$PM2.792448@news20.bellglobal.com>...
Dans news:d6652001.0310150024.3592b2bf@posting.google.com,
client. Mais je n'aime pas les conventions qui distinguent entre
les constantes et les autres variables, parce que d'après
l'expérience, les constantes finissent toujours par ne plus
l'être.
Si tu y penses bien, on pourrait appliquer ton raisonnement pour
dire qu'il faut absolument différencier les constantes des
variables, justement pour voir quand ça change !
Et avoir à modifier toutes les utilisations. En revanche, une
personne m'a déjà dit que les « constantes » initialisées depuis un
fichier de configuration était encore logiquement des constantes
(sauf évidemment pour le code d'initialisation), et donc, qu'elles
devaient toujours porter des noms des constantes.
C'est assez logique. Quel est le problème ?
[...]
J'espère seulement que quand tu présentes tes conventions dans le
cours, tu dis bien, ne serait-ce qu'en passant, que d'autres
conventions existent, et que tout le monde ne distingue pas les
constantes des autres variables par des conventions de nommage.
Bien entendu.
Même sur mon site (http://www.gdzid.com/Cplusplus.html), on peut
lire « Les règles qu'on a choisies ne sont pas universelles :
certaines compagnies peuvent imposer des règles en contradiction
complète dans certains cas. ».
En fait, je vois bien plus souvent l'idée de ne pas mettre les
constantes en majuscules présentée sans nuance...
--
Michel Michaud mm@gdzid.com
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
"Michel Michaud" wrote in message news:<REejb.7443$...
Dans news:,
client. Mais je n'aime pas les conventions qui distinguent entre les constantes et les autres variables, parce que d'après l'expérience, les constantes finissent toujours par ne plus l'être.
Si tu y penses bien, on pourrait appliquer ton raisonnement pour dire qu'il faut absolument différencier les constantes des variables, justement pour voir quand ça change !
Et avoir à modifier toutes les utilisations. En revanche, une personne m'a déjà dit que les « constantes » initialisées depuis un fichier de configuration était encore logiquement des constantes (sauf évidemment pour le code d'initialisation), et donc, qu'elles devaient toujours porter des noms des constantes.
C'est assez logique. Quel est le problème ?
[...]
J'espère seulement que quand tu présentes tes conventions dans le cours, tu dis bien, ne serait-ce qu'en passant, que d'autres conventions existent, et que tout le monde ne distingue pas les constantes des autres variables par des conventions de nommage.
Bien entendu.
Même sur mon site (http://www.gdzid.com/Cplusplus.html), on peut lire « Les règles qu'on a choisies ne sont pas universelles : certaines compagnies peuvent imposer des règles en contradiction complète dans certains cas. ».
En fait, je vois bien plus souvent l'idée de ne pas mettre les constantes en majuscules présentée sans nuance...
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/