Définir un type avec valeurs manquantes. Comment faire ?
22 réponses
Marc
Bonjour,
je cherche à introduire la notion de valeur manquante pour des objets.
Je me suis dit que les patrons de classe pouvaient être la solution avec une
implémentation du genre :
template <class T >
class CTypeBase {
public :
CTypeBase() : FMissingValue(true),FValue(T()) {}
CTypeBase(const T &x) : FMissingValue(false),FValue(x) {}
// redéfinition des opérateurs dans mon cas ...
// opération avec missing -> missing
private :
bool FMissingValue;
T FValue;
};
typedef CTypeBase<int> CTypeInt;
Ma question :
Pour des gros objets, ça peut convenir, mais pour des int/double/etc, ça
paraît très peu performant !
Surtout si je veux lire/écrire des données sur disque...
Est-ce que quelq'un connaît une solution à ce problème ?
Bonjour, je cherche à introduire la notion de valeur manquante pour des objets.
Pour quoi faire ? Quelles opérations permises sur ces objets ?
Je me suis dit que les patrons de classe pouvaient être la solution avec une implémentation du genre : [SNIP implementation]
Ma question : Pour des gros objets, ça peut convenir, mais pour des int/double/etc, ça paraît très peu performant !
Ben, comme tu ajoutes une fonctionalité que les processeurs ne supportent pas directement, c'est normal.
Surtout si je veux lire/écrire des données sur disque...
Je vois pas le problème là.
Est-ce que quelqu'un connaît une solution à ce problème ?
Ben, je ne vois pas bien le problème en fait.
Marc Boyer -- La contractualisation de la recherche, c'est me donner de l'argent pour faire ce que je ne sais pas faire, que je fais donc mal, pendant que ce que je sais faire, je le fais sans moyens...
Marc wrote:
Bonjour,
je cherche à introduire la notion de valeur manquante pour des objets.
Pour quoi faire ? Quelles opérations permises sur ces objets ?
Je me suis dit que les patrons de classe pouvaient être la solution avec une
implémentation du genre :
[SNIP implementation]
Ma question :
Pour des gros objets, ça peut convenir, mais pour des int/double/etc, ça
paraît très peu performant !
Ben, comme tu ajoutes une fonctionalité que les processeurs
ne supportent pas directement, c'est normal.
Surtout si je veux lire/écrire des données sur disque...
Je vois pas le problème là.
Est-ce que quelqu'un connaît une solution à ce problème ?
Ben, je ne vois pas bien le problème en fait.
Marc Boyer
--
La contractualisation de la recherche, c'est me donner de l'argent pour
faire ce que je ne sais pas faire, que je fais donc mal, pendant que ce
que je sais faire, je le fais sans moyens...
Bonjour, je cherche à introduire la notion de valeur manquante pour des objets.
Pour quoi faire ? Quelles opérations permises sur ces objets ?
Je me suis dit que les patrons de classe pouvaient être la solution avec une implémentation du genre : [SNIP implementation]
Ma question : Pour des gros objets, ça peut convenir, mais pour des int/double/etc, ça paraît très peu performant !
Ben, comme tu ajoutes une fonctionalité que les processeurs ne supportent pas directement, c'est normal.
Surtout si je veux lire/écrire des données sur disque...
Je vois pas le problème là.
Est-ce que quelqu'un connaît une solution à ce problème ?
Ben, je ne vois pas bien le problème en fait.
Marc Boyer -- La contractualisation de la recherche, c'est me donner de l'argent pour faire ce que je ne sais pas faire, que je fais donc mal, pendant que ce que je sais faire, je le fais sans moyens...
Marc
Bonjour, je cherche à introduire la notion de valeur manquante pour des objets.
Pour quoi faire ? Quelles opérations permises sur ces objets ?
par exemple : CTypeInt x, y; // valeur manquante CtypeInt z=x+y; // doit me donner valeur manquante or avec le type int standart, il y a toujours une valeur !
Surtout si je veux lire/écrire des données sur disque...
Je vois pas le problème là.
et bien ensuite je fais des vecteurs de CTypeInt par exemple, que j'enregistre dans une base de données au format propre. En gros, pour le type int, je vais écrire un int et un bool soit 4+1 octets au lieu de 4 sur mon système. Avec des données statistiques, c'est un problème classique que de manipuler des valeurs manquantes (réponse dans des enquêtes, etc.).
Bonjour,
je cherche à introduire la notion de valeur manquante pour des objets.
Pour quoi faire ? Quelles opérations permises sur ces objets ?
par exemple :
CTypeInt x,
y; // valeur manquante
CtypeInt z=x+y; // doit me donner valeur manquante or avec le type int
standart, il y a toujours une valeur !
Surtout si je veux lire/écrire des données sur disque...
Je vois pas le problème là.
et bien ensuite je fais des vecteurs de CTypeInt par exemple, que
j'enregistre dans une base de données au format propre.
En gros, pour le type int, je vais écrire un int et un bool soit 4+1 octets
au lieu de 4 sur mon système.
Avec des données statistiques, c'est un problème classique que de manipuler
des valeurs manquantes (réponse dans des enquêtes, etc.).
Bonjour, je cherche à introduire la notion de valeur manquante pour des objets.
Pour quoi faire ? Quelles opérations permises sur ces objets ?
par exemple : CTypeInt x, y; // valeur manquante CtypeInt z=x+y; // doit me donner valeur manquante or avec le type int standart, il y a toujours une valeur !
Surtout si je veux lire/écrire des données sur disque...
Je vois pas le problème là.
et bien ensuite je fais des vecteurs de CTypeInt par exemple, que j'enregistre dans une base de données au format propre. En gros, pour le type int, je vais écrire un int et un bool soit 4+1 octets au lieu de 4 sur mon système. Avec des données statistiques, c'est un problème classique que de manipuler des valeurs manquantes (réponse dans des enquêtes, etc.).
Fabien LE LEZ
On Mon, 18 Oct 2004 13:47:15 +0200, "Marc" :
et bien ensuite je fais des vecteurs de CTypeInt par exemple, que j'enregistre dans une base de données au format propre. En gros, pour le type int, je vais écrire un int et un bool soit 4+1 octets au lieu de 4 sur mon système.
Bien souvent, on utilise une valeur impossible pour symboliser une valeur manquante. Par exemple, si tu ne connais pas l'âge d'une personne, tu mets -1. C'est dangereux (Y'a longtemps, certains avaient choisi "9/9/99" comme date "bidon"... sans penser que le 9 septembre 1999 finirait par arriver ;-) ), et ce n'est pas toujours applicable, mais c'est très utilisé, et il arrive que ça marche bien.
Sinon, le conseil que je peux te donner : essaie avec ta méthode (4+1 octets), et si tu t'aperçois que ça prend vraiment trop de ressources, il sera toujours temps de changer. En d'autres termes : n'optimiser que si les mesures montrent que c'est utile.
-- ;-)
On Mon, 18 Oct 2004 13:47:15 +0200, "Marc" <metrica@free.fr>:
et bien ensuite je fais des vecteurs de CTypeInt par exemple, que
j'enregistre dans une base de données au format propre.
En gros, pour le type int, je vais écrire un int et un bool soit 4+1 octets
au lieu de 4 sur mon système.
Bien souvent, on utilise une valeur impossible pour symboliser une
valeur manquante. Par exemple, si tu ne connais pas l'âge d'une
personne, tu mets -1.
C'est dangereux (Y'a longtemps, certains avaient choisi "9/9/99" comme
date "bidon"... sans penser que le 9 septembre 1999 finirait par
arriver ;-) ), et ce n'est pas toujours applicable, mais c'est très
utilisé, et il arrive que ça marche bien.
Sinon, le conseil que je peux te donner : essaie avec ta méthode (4+1
octets), et si tu t'aperçois que ça prend vraiment trop de ressources,
il sera toujours temps de changer.
En d'autres termes : n'optimiser que si les mesures montrent que c'est
utile.
et bien ensuite je fais des vecteurs de CTypeInt par exemple, que j'enregistre dans une base de données au format propre. En gros, pour le type int, je vais écrire un int et un bool soit 4+1 octets au lieu de 4 sur mon système.
Bien souvent, on utilise une valeur impossible pour symboliser une valeur manquante. Par exemple, si tu ne connais pas l'âge d'une personne, tu mets -1. C'est dangereux (Y'a longtemps, certains avaient choisi "9/9/99" comme date "bidon"... sans penser que le 9 septembre 1999 finirait par arriver ;-) ), et ce n'est pas toujours applicable, mais c'est très utilisé, et il arrive que ça marche bien.
Sinon, le conseil que je peux te donner : essaie avec ta méthode (4+1 octets), et si tu t'aperçois que ça prend vraiment trop de ressources, il sera toujours temps de changer. En d'autres termes : n'optimiser que si les mesures montrent que c'est utile.
-- ;-)
Marc
Je n'ai aucune idée des informations qui seront stockées dans mes variables donc il me faut quelque chose de vraiment robuste. J'imagine que les bases de données en circulation sont confrontées au même problème de représentation interne des valeurs manquantes...
Question subsidiaire : J'ai vu que pour le type double, il y a une valeur qui représente l'infini (cas à mon humble avis beaucoup + rare qu'une valeur manquante, du moins dans mon univers statistique !)
std::numeric_limits<double> double_info; double x=double_info.infinity(); et on a bien sûr infini + x=infini, soit à peu près la même chose que pour une valeur manquante... mais pour un int, infinity() me retourne 0 ! Est-ce que tu sais ce que représente infinity() ?
Marc
Je n'ai aucune idée des informations qui seront stockées dans mes variables
donc il me faut quelque chose de vraiment robuste. J'imagine que les bases
de données en circulation sont confrontées au même problème de
représentation interne des valeurs manquantes...
Question subsidiaire :
J'ai vu que pour le type double, il y a une valeur qui représente l'infini
(cas à mon humble avis beaucoup + rare qu'une valeur manquante, du moins
dans mon univers statistique !)
std::numeric_limits<double> double_info;
double x=double_info.infinity();
et on a bien sûr infini + x=infini, soit à peu près la même chose que pour
une valeur manquante...
mais pour un int, infinity() me retourne 0 !
Est-ce que tu sais ce que représente infinity() ?
Je n'ai aucune idée des informations qui seront stockées dans mes variables donc il me faut quelque chose de vraiment robuste. J'imagine que les bases de données en circulation sont confrontées au même problème de représentation interne des valeurs manquantes...
Question subsidiaire : J'ai vu que pour le type double, il y a une valeur qui représente l'infini (cas à mon humble avis beaucoup + rare qu'une valeur manquante, du moins dans mon univers statistique !)
std::numeric_limits<double> double_info; double x=double_info.infinity(); et on a bien sûr infini + x=infini, soit à peu près la même chose que pour une valeur manquante... mais pour un int, infinity() me retourne 0 ! Est-ce que tu sais ce que représente infinity() ?
Marc
Jean-Marc Bourguet
"Marc" writes:
Je n'ai aucune idée des informations qui seront stockées dans mes variables donc il me faut quelque chose de vraiment robuste. J'imagine que les bases de données en circulation sont confrontées au même problème de représentation interne des valeurs manquantes...
Question subsidiaire : J'ai vu que pour le type double, il y a une valeur qui représente l'infini (cas à mon humble avis beaucoup + rare qu'une valeur manquante, du moins dans mon univers statistique !)
std::numeric_limits<double> double_info; double x=double_info.infinity(); et on a bien sûr infini + x=infini, soit à peu près la même chose que pour
Attention, il y a deux infinis avec les flottants courants. Potentiellement plus adapte tu as les NaN (Not a Number) qui sont absorbant pour toutes les operations.
Les entiers utilisent generalement toutes les representations. Eventuellement tu peux utiliser MIN_INT et reduire donc a un intervalle symetrique (ou -O pour les machines en complement a 1 ou grandeur et signe s'il en traine de ton cote).
Sinon tu peux aussi envisager un bitmap separe indiquant la validite des donnees pour le stockage. La representation interne, je la laisse a ton choix.
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
"Marc" <metrica@free.fr> writes:
Je n'ai aucune idée des informations qui seront stockées dans mes variables
donc il me faut quelque chose de vraiment robuste. J'imagine que les bases
de données en circulation sont confrontées au même problème de
représentation interne des valeurs manquantes...
Question subsidiaire :
J'ai vu que pour le type double, il y a une valeur qui représente l'infini
(cas à mon humble avis beaucoup + rare qu'une valeur manquante, du moins
dans mon univers statistique !)
std::numeric_limits<double> double_info;
double x=double_info.infinity();
et on a bien sûr infini + x=infini, soit à peu près la même chose que pour
Attention, il y a deux infinis avec les flottants courants.
Potentiellement plus adapte tu as les NaN (Not a Number) qui sont
absorbant pour toutes les operations.
Les entiers utilisent generalement toutes les representations.
Eventuellement tu peux utiliser MIN_INT et reduire donc a un
intervalle symetrique (ou -O pour les machines en complement a 1 ou
grandeur et signe s'il en traine de ton cote).
Sinon tu peux aussi envisager un bitmap separe indiquant la validite
des donnees pour le stockage. La representation interne, je la laisse
a ton choix.
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
Je n'ai aucune idée des informations qui seront stockées dans mes variables donc il me faut quelque chose de vraiment robuste. J'imagine que les bases de données en circulation sont confrontées au même problème de représentation interne des valeurs manquantes...
Question subsidiaire : J'ai vu que pour le type double, il y a une valeur qui représente l'infini (cas à mon humble avis beaucoup + rare qu'une valeur manquante, du moins dans mon univers statistique !)
std::numeric_limits<double> double_info; double x=double_info.infinity(); et on a bien sûr infini + x=infini, soit à peu près la même chose que pour
Attention, il y a deux infinis avec les flottants courants. Potentiellement plus adapte tu as les NaN (Not a Number) qui sont absorbant pour toutes les operations.
Les entiers utilisent generalement toutes les representations. Eventuellement tu peux utiliser MIN_INT et reduire donc a un intervalle symetrique (ou -O pour les machines en complement a 1 ou grandeur et signe s'il en traine de ton cote).
Sinon tu peux aussi envisager un bitmap separe indiquant la validite des donnees pour le stockage. La representation interne, je la laisse a ton choix.
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
kanze
"Marc" wrote in message news:<4173b3a2$0$8966$...
Je n'ai aucune idée des informations qui seront stockées dans mes variables donc il me faut quelque chose de vraiment robuste. J'imagine que les bases de données en circulation sont confrontées au même problème de représentation interne des valeurs manquantes...
Oui. Elles utilise un octet supplémentaire.
Comme a dit Fabien, tant qu'il n'y a pas de preuve que c'est un problème, un bool en plus est la solution universellement admis. Même is parfois il fait doubler la taille de l'objet. (Les contraints d'alignement veut dire qu'un bool plus un int a typiquement besoin de 8 octets à la place de 4.)
-- James Kanze GABI Software http://www.gabi-soft.fr 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
"Marc" <metrica@free.fr> wrote in message
news:<4173b3a2$0$8966$636a15ce@news.free.fr>...
Je n'ai aucune idée des informations qui seront stockées dans mes
variables donc il me faut quelque chose de vraiment robuste. J'imagine
que les bases de données en circulation sont confrontées au même
problème de représentation interne des valeurs manquantes...
Oui. Elles utilise un octet supplémentaire.
Comme a dit Fabien, tant qu'il n'y a pas de preuve que c'est un
problème, un bool en plus est la solution universellement admis. Même is
parfois il fait doubler la taille de l'objet. (Les contraints
d'alignement veut dire qu'un bool plus un int a typiquement besoin de 8
octets à la place de 4.)
--
James Kanze GABI Software http://www.gabi-soft.fr
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
Je n'ai aucune idée des informations qui seront stockées dans mes variables donc il me faut quelque chose de vraiment robuste. J'imagine que les bases de données en circulation sont confrontées au même problème de représentation interne des valeurs manquantes...
Oui. Elles utilise un octet supplémentaire.
Comme a dit Fabien, tant qu'il n'y a pas de preuve que c'est un problème, un bool en plus est la solution universellement admis. Même is parfois il fait doubler la taille de l'objet. (Les contraints d'alignement veut dire qu'un bool plus un int a typiquement besoin de 8 octets à la place de 4.)
-- James Kanze GABI Software http://www.gabi-soft.fr 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
Marc
Comme a dit Fabien, tant qu'il n'y a pas de preuve que c'est un problème, un bool en plus est la solution universellement admis. Même is parfois il fait doubler la taille de l'objet. (Les contraints d'alignement veut dire qu'un bool plus un int a typiquement besoin de 8 octets à la place de 4.)
merci, c'est justement une question que je me posais. Vaut-il mieux stocker l'information sur une valeur manquante dans un int (4 octets) avec les valeurs 0 ou 1 que dans un bool ? C'est plus rapide en lecture/écriture sur disque et traitement en mémoire ?
Comme a dit Fabien, tant qu'il n'y a pas de preuve que c'est un
problème, un bool en plus est la solution universellement admis. Même is
parfois il fait doubler la taille de l'objet. (Les contraints
d'alignement veut dire qu'un bool plus un int a typiquement besoin de 8
octets à la place de 4.)
merci,
c'est justement une question que je me posais.
Vaut-il mieux stocker l'information sur une valeur manquante dans un int (4
octets) avec les valeurs 0 ou 1 que dans un bool ? C'est plus rapide en
lecture/écriture sur disque et traitement en mémoire ?
Comme a dit Fabien, tant qu'il n'y a pas de preuve que c'est un problème, un bool en plus est la solution universellement admis. Même is parfois il fait doubler la taille de l'objet. (Les contraints d'alignement veut dire qu'un bool plus un int a typiquement besoin de 8 octets à la place de 4.)
merci, c'est justement une question que je me posais. Vaut-il mieux stocker l'information sur une valeur manquante dans un int (4 octets) avec les valeurs 0 ou 1 que dans un bool ? C'est plus rapide en lecture/écriture sur disque et traitement en mémoire ?
Jean-Marc Bourguet
"Marc" writes:
Comme a dit Fabien, tant qu'il n'y a pas de preuve que c'est un problème, un bool en plus est la solution universellement admis. Même is parfois il fait doubler la taille de l'objet. (Les contraints d'alignement veut dire qu'un bool plus un int a typiquement besoin de 8 octets à la place de 4.)
merci, c'est justement une question que je me posais. Vaut-il mieux stocker l'information sur une valeur manquante dans un int (4 octets) avec les valeurs 0 ou 1 que dans un bool ?
C'est quoi tes criteres de meilleur?
Il y a des chances pour que sizeof(bool) == sizeof(int)
Avec
struct A { int i; bool b; }; struct B { int i; int i2; };
je serais tres etonne sur une architecture moderne d'avoir sizeof(A) != sizeof(B).
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
"Marc" <metrica@free.fr> writes:
Comme a dit Fabien, tant qu'il n'y a pas de preuve que c'est un
problème, un bool en plus est la solution universellement admis. Même is
parfois il fait doubler la taille de l'objet. (Les contraints
d'alignement veut dire qu'un bool plus un int a typiquement besoin de 8
octets à la place de 4.)
merci,
c'est justement une question que je me posais.
Vaut-il mieux stocker l'information sur une valeur manquante dans un int (4
octets) avec les valeurs 0 ou 1 que dans un bool ?
C'est quoi tes criteres de meilleur?
Il y a des chances pour que sizeof(bool) == sizeof(int)
Avec
struct A { int i; bool b; };
struct B { int i; int i2; };
je serais tres etonne sur une architecture moderne d'avoir
sizeof(A) != sizeof(B).
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
Comme a dit Fabien, tant qu'il n'y a pas de preuve que c'est un problème, un bool en plus est la solution universellement admis. Même is parfois il fait doubler la taille de l'objet. (Les contraints d'alignement veut dire qu'un bool plus un int a typiquement besoin de 8 octets à la place de 4.)
merci, c'est justement une question que je me posais. Vaut-il mieux stocker l'information sur une valeur manquante dans un int (4 octets) avec les valeurs 0 ou 1 que dans un bool ?
C'est quoi tes criteres de meilleur?
Il y a des chances pour que sizeof(bool) == sizeof(int)
Avec
struct A { int i; bool b; }; struct B { int i; int i2; };
je serais tres etonne sur une architecture moderne d'avoir sizeof(A) != sizeof(B).
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
Marc
Il y a des chances pour que sizeof(bool) == sizeof(int)
désolé, mais chez moi (Windows + compilateur C++Builder 6), sizeof(bool) donne 1 et sizeof(int) donne 4
Marc
Il y a des chances pour que sizeof(bool) == sizeof(int)
désolé,
mais chez moi (Windows + compilateur C++Builder 6),
sizeof(bool) donne 1
et sizeof(int) donne 4
Il y a des chances pour que sizeof(bool) == sizeof(int)
désolé, mais chez moi (Windows + compilateur C++Builder 6), sizeof(bool) donne 1 et sizeof(int) donne 4
Marc
Jean-Marc Bourguet
"Marc" writes:
Il y a des chances pour que sizeof(bool) == sizeof(int)
désolé, mais chez moi (Windows + compilateur C++Builder 6), sizeof(bool) donne 1 et sizeof(int) donne 4
Bizarre, je viens d'essayer et c'est ce que me donne tous mes compilateurs aussi (g++ sur Solaris et Linux, CC sur Solaris, aCC sur HP-UX, xlC sur AIX). Qu'est-ce qui a bien pu me laisser penser ca?
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
"Marc" <metrica@free.fr> writes:
Il y a des chances pour que sizeof(bool) == sizeof(int)
désolé,
mais chez moi (Windows + compilateur C++Builder 6),
sizeof(bool) donne 1
et sizeof(int) donne 4
Bizarre, je viens d'essayer et c'est ce que me donne tous mes
compilateurs aussi (g++ sur Solaris et Linux, CC sur Solaris, aCC sur
HP-UX, xlC sur AIX). Qu'est-ce qui a bien pu me laisser penser ca?
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
Il y a des chances pour que sizeof(bool) == sizeof(int)
désolé, mais chez moi (Windows + compilateur C++Builder 6), sizeof(bool) donne 1 et sizeof(int) donne 4
Bizarre, je viens d'essayer et c'est ce que me donne tous mes compilateurs aussi (g++ sur Solaris et Linux, CC sur Solaris, aCC sur HP-UX, xlC sur AIX). Qu'est-ce qui a bien pu me laisser penser ca?
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