Dans la Bible, l'ami Stroustrup conseil d'utiliser 0 à la place de NULL.
Il indique également pour ceux qui voudraient continuer à utiliser NULL
d'en
faire la déclaration suivante:
const int NULL = 0;
Cependant, j'ai peur qu'en faisant une telle déclaration dans un .hpp,
le compilateur me cré un symbole (au sens "linkage" du terme)
...
- Visual 6.0) n'arrive jamais à linker
Faute à sa non-conformité avec le standard C++.
De plus je pense que sa proposition est assez moyenne car meme si je
peux -
dans un de mes headers - redéfinir NULL par "const int NULL = 0;" je cours
de grands risques avec l'inclusion de headers standards: mon NULL rentrera
en conflit avec le NULL standard et se dernier remplacera le miens au
préprocessing pour me donner un résultat assez ... tordu!!!
Ou alors:
- je peux faire avant ma définition un #undef NULL
- je peux faire mon propre NULL: "const int MYNULL = 0;"
Merci de votre réaction
Dans la Bible, l'ami Stroustrup conseil d'utiliser 0 à la place de NULL.
Il indique également pour ceux qui voudraient continuer à utiliser NULL
d'en
faire la déclaration suivante:
const int NULL = 0;
Cependant, j'ai peur qu'en faisant une telle déclaration dans un .hpp,
le compilateur me cré un symbole (au sens "linkage" du terme)
...
- Visual 6.0) n'arrive jamais à linker
Faute à sa non-conformité avec le standard C++.
De plus je pense que sa proposition est assez moyenne car meme si je
peux -
dans un de mes headers - redéfinir NULL par "const int NULL = 0;" je cours
de grands risques avec l'inclusion de headers standards: mon NULL rentrera
en conflit avec le NULL standard et se dernier remplacera le miens au
préprocessing pour me donner un résultat assez ... tordu!!!
Ou alors:
- je peux faire avant ma définition un #undef NULL
- je peux faire mon propre NULL: "const int MYNULL = 0;"
Merci de votre réaction
Dans la Bible, l'ami Stroustrup conseil d'utiliser 0 à la place de NULL.
Il indique également pour ceux qui voudraient continuer à utiliser NULL
d'en
faire la déclaration suivante:
const int NULL = 0;
Cependant, j'ai peur qu'en faisant une telle déclaration dans un .hpp,
le compilateur me cré un symbole (au sens "linkage" du terme)
...
- Visual 6.0) n'arrive jamais à linker
Faute à sa non-conformité avec le standard C++.
De plus je pense que sa proposition est assez moyenne car meme si je
peux -
dans un de mes headers - redéfinir NULL par "const int NULL = 0;" je cours
de grands risques avec l'inclusion de headers standards: mon NULL rentrera
en conflit avec le NULL standard et se dernier remplacera le miens au
préprocessing pour me donner un résultat assez ... tordu!!!
Ou alors:
- je peux faire avant ma définition un #undef NULL
- je peux faire mon propre NULL: "const int MYNULL = 0;"
Merci de votre réaction
NULL est purement et simplement sorti de mon vocabulaire,
NULL est purement et simplement sorti de mon vocabulaire,
NULL est purement et simplement sorti de mon vocabulaire,
Dans la Bible, l'ami Stroustrup conseil d'utiliser 0 à la
place de NULL.
Il indique également pour ceux qui voudraient continuer à
utiliser NULL d'en faire la déclaration suivante:
const int NULL = 0;
Cependant, j'ai peur qu'en faisant une telle déclaration dans
un .hpp, le compilateur me cré un symbole (au sens "linkage"
du terme) pour la constante
(i.e. une sorte de variable globale non-modifiable) par
fichier .cpp incluant le fameux header.
Au final, l'étape de link risque d'etre douloureuse!!!!
Apres quelques tests (un peu trop à la va-vite je dois
l'avouer) il semblerait que:
- GCC) arrive linker SI la variable est "const" dans le cas
contraire, il n'y parvient pas!!!
- Visual 6.0) n'arrive jamais à linker
Avez vous des info à ce sujet? est-ce GCC qui fait des
optimisations dans certains cas? est-ce Visual 6.0 qui a
une/des limitation(s) à se sujet? Est-ce moi qui ai mal fait
mes tests ("vite fait mal fait")?
De plus je pense que sa proposition est assez moyenne car meme
si je peux - dans un de mes headers - redéfinir NULL par
"const int NULL = 0;" je cours de grands risques avec
l'inclusion de headers standards: mon NULL rentrera en conflit
avec le NULL standard et se dernier remplacera le miens au
préprocessing pour me donner un résultat assez ... tordu!!!
Ou alors:
- je peux faire avant ma définition un #undef NULL
- je peux faire mon propre NULL: "const int MYNULL = 0;"
Dans la Bible, l'ami Stroustrup conseil d'utiliser 0 à la
place de NULL.
Il indique également pour ceux qui voudraient continuer à
utiliser NULL d'en faire la déclaration suivante:
const int NULL = 0;
Cependant, j'ai peur qu'en faisant une telle déclaration dans
un .hpp, le compilateur me cré un symbole (au sens "linkage"
du terme) pour la constante
(i.e. une sorte de variable globale non-modifiable) par
fichier .cpp incluant le fameux header.
Au final, l'étape de link risque d'etre douloureuse!!!!
Apres quelques tests (un peu trop à la va-vite je dois
l'avouer) il semblerait que:
- GCC) arrive linker SI la variable est "const" dans le cas
contraire, il n'y parvient pas!!!
- Visual 6.0) n'arrive jamais à linker
Avez vous des info à ce sujet? est-ce GCC qui fait des
optimisations dans certains cas? est-ce Visual 6.0 qui a
une/des limitation(s) à se sujet? Est-ce moi qui ai mal fait
mes tests ("vite fait mal fait")?
De plus je pense que sa proposition est assez moyenne car meme
si je peux - dans un de mes headers - redéfinir NULL par
"const int NULL = 0;" je cours de grands risques avec
l'inclusion de headers standards: mon NULL rentrera en conflit
avec le NULL standard et se dernier remplacera le miens au
préprocessing pour me donner un résultat assez ... tordu!!!
Ou alors:
- je peux faire avant ma définition un #undef NULL
- je peux faire mon propre NULL: "const int MYNULL = 0;"
Dans la Bible, l'ami Stroustrup conseil d'utiliser 0 à la
place de NULL.
Il indique également pour ceux qui voudraient continuer à
utiliser NULL d'en faire la déclaration suivante:
const int NULL = 0;
Cependant, j'ai peur qu'en faisant une telle déclaration dans
un .hpp, le compilateur me cré un symbole (au sens "linkage"
du terme) pour la constante
(i.e. une sorte de variable globale non-modifiable) par
fichier .cpp incluant le fameux header.
Au final, l'étape de link risque d'etre douloureuse!!!!
Apres quelques tests (un peu trop à la va-vite je dois
l'avouer) il semblerait que:
- GCC) arrive linker SI la variable est "const" dans le cas
contraire, il n'y parvient pas!!!
- Visual 6.0) n'arrive jamais à linker
Avez vous des info à ce sujet? est-ce GCC qui fait des
optimisations dans certains cas? est-ce Visual 6.0 qui a
une/des limitation(s) à se sujet? Est-ce moi qui ai mal fait
mes tests ("vite fait mal fait")?
De plus je pense que sa proposition est assez moyenne car meme
si je peux - dans un de mes headers - redéfinir NULL par
"const int NULL = 0;" je cours de grands risques avec
l'inclusion de headers standards: mon NULL rentrera en conflit
avec le NULL standard et se dernier remplacera le miens au
préprocessing pour me donner un résultat assez ... tordu!!!
Ou alors:
- je peux faire avant ma définition un #undef NULL
- je peux faire mon propre NULL: "const int MYNULL = 0;"
Pour ma part, j'utilise tout simplement 00 quand la valeur
représente un pointeur
Pour ma part, j'utilise tout simplement 00 quand la valeur
représente un pointeur
Pour ma part, j'utilise tout simplement 00 quand la valeur
représente un pointeur
Philippe Mesmeur writes:
| Dans la Bible, l'ami Stroustrup conseil d'utiliser 0 à la
| place de NULL. Il indique également pour ceux qui voudraient
| continuer à utiliser NULL d'en faire la déclaration
| suivante:
| const int NULL = 0;
| Cependant, j'ai peur qu'en faisant une telle déclaration
| dans un .hpp, le compilateur me cré un symbole (au sens
| "linkage" du terme) pour la constante (i.e. une sorte de
| variable globale non-modifiable) par fichier .cpp incluant
| le fameux header.
should not happen.
| Au final, l'étape de link risque d'etre douloureuse!!!!
Non.
| Apres quelques tests (un peu trop à la va-vite je dois
| l'avouer) il semblerait que:
| - GCC) arrive linker SI la variable est "const" dans le cas
| contraire, il n'y parvient pas!!!
Oui, et c'est ce que demande C++ depuis très longtemps. C'est
pour ça qu'il a dit
const int NULL = 0;
et non
int NULL = 0;
Chaque mot a son importance.
| - Visual 6.0) n'arrive jamais à linker
Visual 6.0 n'arrive pas à faire beaucoup de choses.
| De plus je pense que sa proposition est assez moyenne car
| meme si je peux - dans un de mes headers - redéfinir NULL
| par "const int NULL = 0;" je cours de grands risques avec
| l'inclusion de headers standards: mon NULL rentrera en
| conflit avec le NULL standard et se dernier remplacera le
| miens au préprocessing pour me donner un résultat assez ...
| tordu!!!
Oui. Mais alors peux-tu citer exactement ce qu'il a écrit ?
Philippe Mesmeur <philippe.mesmeur@noos.fr> writes:
| Dans la Bible, l'ami Stroustrup conseil d'utiliser 0 à la
| place de NULL. Il indique également pour ceux qui voudraient
| continuer à utiliser NULL d'en faire la déclaration
| suivante:
| const int NULL = 0;
| Cependant, j'ai peur qu'en faisant une telle déclaration
| dans un .hpp, le compilateur me cré un symbole (au sens
| "linkage" du terme) pour la constante (i.e. une sorte de
| variable globale non-modifiable) par fichier .cpp incluant
| le fameux header.
should not happen.
| Au final, l'étape de link risque d'etre douloureuse!!!!
Non.
| Apres quelques tests (un peu trop à la va-vite je dois
| l'avouer) il semblerait que:
| - GCC) arrive linker SI la variable est "const" dans le cas
| contraire, il n'y parvient pas!!!
Oui, et c'est ce que demande C++ depuis très longtemps. C'est
pour ça qu'il a dit
const int NULL = 0;
et non
int NULL = 0;
Chaque mot a son importance.
| - Visual 6.0) n'arrive jamais à linker
Visual 6.0 n'arrive pas à faire beaucoup de choses.
| De plus je pense que sa proposition est assez moyenne car
| meme si je peux - dans un de mes headers - redéfinir NULL
| par "const int NULL = 0;" je cours de grands risques avec
| l'inclusion de headers standards: mon NULL rentrera en
| conflit avec le NULL standard et se dernier remplacera le
| miens au préprocessing pour me donner un résultat assez ...
| tordu!!!
Oui. Mais alors peux-tu citer exactement ce qu'il a écrit ?
Philippe Mesmeur writes:
| Dans la Bible, l'ami Stroustrup conseil d'utiliser 0 à la
| place de NULL. Il indique également pour ceux qui voudraient
| continuer à utiliser NULL d'en faire la déclaration
| suivante:
| const int NULL = 0;
| Cependant, j'ai peur qu'en faisant une telle déclaration
| dans un .hpp, le compilateur me cré un symbole (au sens
| "linkage" du terme) pour la constante (i.e. une sorte de
| variable globale non-modifiable) par fichier .cpp incluant
| le fameux header.
should not happen.
| Au final, l'étape de link risque d'etre douloureuse!!!!
Non.
| Apres quelques tests (un peu trop à la va-vite je dois
| l'avouer) il semblerait que:
| - GCC) arrive linker SI la variable est "const" dans le cas
| contraire, il n'y parvient pas!!!
Oui, et c'est ce que demande C++ depuis très longtemps. C'est
pour ça qu'il a dit
const int NULL = 0;
et non
int NULL = 0;
Chaque mot a son importance.
| - Visual 6.0) n'arrive jamais à linker
Visual 6.0 n'arrive pas à faire beaucoup de choses.
| De plus je pense que sa proposition est assez moyenne car
| meme si je peux - dans un de mes headers - redéfinir NULL
| par "const int NULL = 0;" je cours de grands risques avec
| l'inclusion de headers standards: mon NULL rentrera en
| conflit avec le NULL standard et se dernier remplacera le
| miens au préprocessing pour me donner un résultat assez ...
| tordu!!!
Oui. Mais alors peux-tu citer exactement ce qu'il a écrit ?
"Philippe Mesmeur" wrote in message
news:4202b6c2$0$4799$Dans la Bible, l'ami Stroustrup conseil d'utiliser 0 à la
place de NULL. Il indique également pour ceux qui voudraient
continuer à utiliser NULL d'en faire la déclaration
suivante:
const int NULL = 0;
Cependant, j'ai peur qu'en faisant une telle déclaration
dans un .hpp, le compilateur me cré un symbole (au sens
"linkage" du terme)
...- Visual 6.0) n'arrive jamais à linker
Faute à sa non-conformité avec le standard C++.
Si une portabilité sur de tels compilateurs est désirable, une
alternative est:
enum { NULL=0 };
J'éviterai effectivement tout court d'utiliser l'identifiant
NULL. Cette macro n'apporte rien, et n'est à mon avis pas plus
judicieuse que... disons:
#define IF(x) if(x) {
#define END_IF }
Certes, une notation permettant de distinguer 'nul' de 'zéro'
peut avoir des avantages.
Pour ma part, j'utilise tout simplement 00 quand la valeur
représente un pointeur, comme j'écris 0.0 pour une constante
double.
NULL est purement et simplement sorti de mon vocabulaire, et
c'est l'option que je, modestement, je recommande également.
"Philippe Mesmeur" <philippe.mesmeur@noos.fr> wrote in message
news:4202b6c2$0$4799$79c14f64@nan-newsreader-05.noos.net...
Dans la Bible, l'ami Stroustrup conseil d'utiliser 0 à la
place de NULL. Il indique également pour ceux qui voudraient
continuer à utiliser NULL d'en faire la déclaration
suivante:
const int NULL = 0;
Cependant, j'ai peur qu'en faisant une telle déclaration
dans un .hpp, le compilateur me cré un symbole (au sens
"linkage" du terme)
...
- Visual 6.0) n'arrive jamais à linker
Faute à sa non-conformité avec le standard C++.
Si une portabilité sur de tels compilateurs est désirable, une
alternative est:
enum { NULL=0 };
J'éviterai effectivement tout court d'utiliser l'identifiant
NULL. Cette macro n'apporte rien, et n'est à mon avis pas plus
judicieuse que... disons:
#define IF(x) if(x) {
#define END_IF }
Certes, une notation permettant de distinguer 'nul' de 'zéro'
peut avoir des avantages.
Pour ma part, j'utilise tout simplement 00 quand la valeur
représente un pointeur, comme j'écris 0.0 pour une constante
double.
NULL est purement et simplement sorti de mon vocabulaire, et
c'est l'option que je, modestement, je recommande également.
"Philippe Mesmeur" wrote in message
news:4202b6c2$0$4799$Dans la Bible, l'ami Stroustrup conseil d'utiliser 0 à la
place de NULL. Il indique également pour ceux qui voudraient
continuer à utiliser NULL d'en faire la déclaration
suivante:
const int NULL = 0;
Cependant, j'ai peur qu'en faisant une telle déclaration
dans un .hpp, le compilateur me cré un symbole (au sens
"linkage" du terme)
...- Visual 6.0) n'arrive jamais à linker
Faute à sa non-conformité avec le standard C++.
Si une portabilité sur de tels compilateurs est désirable, une
alternative est:
enum { NULL=0 };
J'éviterai effectivement tout court d'utiliser l'identifiant
NULL. Cette macro n'apporte rien, et n'est à mon avis pas plus
judicieuse que... disons:
#define IF(x) if(x) {
#define END_IF }
Certes, une notation permettant de distinguer 'nul' de 'zéro'
peut avoir des avantages.
Pour ma part, j'utilise tout simplement 00 quand la valeur
représente un pointeur, comme j'écris 0.0 pour une constante
double.
NULL est purement et simplement sorti de mon vocabulaire, et
c'est l'option que je, modestement, je recommande également.
J'éviterai effectivement tout court d'utiliser l'identifiant NULL.
Cette macro n'apporte rien [...]
Certes, une notation permettant de distinguer 'nul' de 'zéro'
peut avoir des avantages.
Pour ma part, j'utilise tout simplement 00 quand la valeur
représente un pointeur, comme j'écris 0.0 pour une constante
double. NULL est purement et simplement sorti de mon vocabulaire,
et c'est l'option que je, modestement, je recommande également.
J'éviterai effectivement tout court d'utiliser l'identifiant NULL.
Cette macro n'apporte rien [...]
Certes, une notation permettant de distinguer 'nul' de 'zéro'
peut avoir des avantages.
Pour ma part, j'utilise tout simplement 00 quand la valeur
représente un pointeur, comme j'écris 0.0 pour une constante
double. NULL est purement et simplement sorti de mon vocabulaire,
et c'est l'option que je, modestement, je recommande également.
J'éviterai effectivement tout court d'utiliser l'identifiant NULL.
Cette macro n'apporte rien [...]
Certes, une notation permettant de distinguer 'nul' de 'zéro'
peut avoir des avantages.
Pour ma part, j'utilise tout simplement 00 quand la valeur
représente un pointeur, comme j'écris 0.0 pour une constante
double. NULL est purement et simplement sorti de mon vocabulaire,
et c'est l'option que je, modestement, je recommande également.