G++, quand à lui (3.4.4 et 4.0.2 au moins), accepte ce code sans sourciller. Est-ce un bug ?
A mon avis oui. J'en ouvrirai un et je verrais ce qu'ils disent.
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
G++, quand à lui (3.4.4 et 4.0.2 au moins), accepte ce code sans
sourciller. Est-ce un bug ?
A mon avis oui. J'en ouvrirai un et je verrais ce qu'ils
disent.
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
G++, quand à lui (3.4.4 et 4.0.2 au moins), accepte ce code sans sourciller. Est-ce un bug ?
A mon avis oui. J'en ouvrirai un et je verrais ce qu'ils disent.
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
fabien.chene.invalid
Jean-Marc Bourguet writes:
( Fabien CHÊNE) writes:
G++, quand à lui (3.4.4 et 4.0.2 au moins), accepte ce code sans sourciller. Est-ce un bug ?
A mon avis oui. J'en ouvrirai un et je verrais ce qu'ils disent.
Merci Jean-Marc, Pourriez-vous mettre un lien ici vers le rapport de bug ?
G++, quand à lui (3.4.4 et 4.0.2 au moins), accepte ce code sans sourciller. Est-ce un bug ?
A mon avis oui. J'en ouvrirai un et je verrais ce qu'ils disent.
Merci Jean-Marc, Pourriez-vous mettre un lien ici vers le rapport de bug ?
Jean-Marc Bourguet
( Fabien CHÊNE) writes:
Jean-Marc Bourguet writes:
( Fabien CHÊNE) writes:
G++, quand à lui (3.4.4 et 4.0.2 au moins), accepte ce code sans sourciller. Est-ce un bug ?
A mon avis oui. J'en ouvrirai un et je verrais ce qu'ils disent.
Merci Jean-Marc, Pourriez-vous mettre un lien ici vers le rapport de bug ?
Mon orthographe desastreuse a frappe. Je voulais ecrire:
J'en ouvrirais un (sous entendu si j'etais vous) et je verrais (ici au moins c'etait correct)...
Mais je peux le faire si le process vous semble complique.
(Au fait, j'ai aucun probleme a etre tutoye... je le fais normalement sur ce groupe sauf quand je reponds a quelqu'un qui me vouvoie)
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
G++, quand à lui (3.4.4 et 4.0.2 au moins), accepte ce code sans
sourciller. Est-ce un bug ?
A mon avis oui. J'en ouvrirai un et je verrais ce qu'ils
disent.
Merci Jean-Marc,
Pourriez-vous mettre un lien ici vers le rapport de bug ?
Mon orthographe desastreuse a frappe. Je voulais ecrire:
J'en ouvrirais un (sous entendu si j'etais vous) et je verrais (ici au
moins c'etait correct)...
Mais je peux le faire si le process vous semble complique.
(Au fait, j'ai aucun probleme a etre tutoye... je le fais normalement
sur ce groupe sauf quand je reponds a quelqu'un qui me vouvoie)
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
G++, quand à lui (3.4.4 et 4.0.2 au moins), accepte ce code sans sourciller. Est-ce un bug ?
A mon avis oui. J'en ouvrirai un et je verrais ce qu'ils disent.
Merci Jean-Marc, Pourriez-vous mettre un lien ici vers le rapport de bug ?
Mon orthographe desastreuse a frappe. Je voulais ecrire:
J'en ouvrirais un (sous entendu si j'etais vous) et je verrais (ici au moins c'etait correct)...
Mais je peux le faire si le process vous semble complique.
(Au fait, j'ai aucun probleme a etre tutoye... je le fais normalement sur ce groupe sauf quand je reponds a quelqu'un qui me vouvoie)
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
fabien.chene.invalid
Jean-Marc Bourguet writes:
( Fabien CHÊNE) writes:
Jean-Marc Bourguet writes:
( Fabien CHÊNE) writes:
G++, quand à lui (3.4.4 et 4.0.2 au moins), accepte ce code sans sourciller. Est-ce un bug ?
A mon avis oui. J'en ouvrirai un et je verrais ce qu'ils disent.
Merci Jean-Marc, Pourriez-vous mettre un lien ici vers le rapport de bug ?
Mon orthographe desastreuse a frappe. Je voulais ecrire:
J'en ouvrirais un (sous entendu si j'etais vous) et je verrais (ici au moins c'etait correct)...
Vu que la recherche en deux phases pour "en" à échouée, j'ai appliqu é une extension non standard, innée chez moi, qui consiste à évaluer paresseusement la phrase. Rajouter du contexte, mais surtout pas en vue de devenir le sujet de l'action :)
Mais je peux le faire si le process vous semble complique.
Allez, je vais rapporter mon premier bug pour g++, chaud les marrons !
(Au fait, j'ai aucun probleme a etre tutoye... je le fais normalement sur ce groupe sauf quand je reponds a quelqu'un qui me vouvoie)
D'accord. (ça ne me pose aucun problèmes non plus bien sur).
G++, quand à lui (3.4.4 et 4.0.2 au moins), accepte ce code sans
sourciller. Est-ce un bug ?
A mon avis oui. J'en ouvrirai un et je verrais ce qu'ils
disent.
Merci Jean-Marc,
Pourriez-vous mettre un lien ici vers le rapport de bug ?
Mon orthographe desastreuse a frappe. Je voulais ecrire:
J'en ouvrirais un (sous entendu si j'etais vous) et je verrais (ici au
moins c'etait correct)...
Vu que la recherche en deux phases pour "en" à échouée, j'ai appliqu é
une extension non standard, innée chez moi, qui consiste à évaluer
paresseusement la phrase. Rajouter du contexte, mais surtout pas en
vue de devenir le sujet de l'action :)
Mais je peux le faire si le process vous semble complique.
Allez, je vais rapporter mon premier bug pour g++, chaud les marrons !
(Au fait, j'ai aucun probleme a etre tutoye... je le fais normalement
sur ce groupe sauf quand je reponds a quelqu'un qui me vouvoie)
D'accord. (ça ne me pose aucun problèmes non plus bien sur).
G++, quand à lui (3.4.4 et 4.0.2 au moins), accepte ce code sans sourciller. Est-ce un bug ?
A mon avis oui. J'en ouvrirai un et je verrais ce qu'ils disent.
Merci Jean-Marc, Pourriez-vous mettre un lien ici vers le rapport de bug ?
Mon orthographe desastreuse a frappe. Je voulais ecrire:
J'en ouvrirais un (sous entendu si j'etais vous) et je verrais (ici au moins c'etait correct)...
Vu que la recherche en deux phases pour "en" à échouée, j'ai appliqu é une extension non standard, innée chez moi, qui consiste à évaluer paresseusement la phrase. Rajouter du contexte, mais surtout pas en vue de devenir le sujet de l'action :)
Mais je peux le faire si le process vous semble complique.
Allez, je vais rapporter mon premier bug pour g++, chaud les marrons !
(Au fait, j'ai aucun probleme a etre tutoye... je le fais normalement sur ce groupe sauf quand je reponds a quelqu'un qui me vouvoie)
D'accord. (ça ne me pose aucun problèmes non plus bien sur).
-- fab --
fabien.chene.invalid
Jean-Marc Bourguet writes:
( Fabien CHÊNE) writes:
G++, quand à lui (3.4.4 et 4.0.2 au moins), accepte ce code sans sourciller. Est-ce un bug ?
A mon avis oui. J'en ouvrirai un et je verrais ce qu'ils disent.
...Euh, pourquoi ce serait un bug ? Je ne comprends pas le problème !?
Anthony Fleury
...Euh, pourquoi ce serait un bug ? Je ne comprends pas le problème !?
Tout simplement parce qu'il y a un membre constant :
struct Foo { int i; double const d; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
};
int main() { Foo* foo = new Foo; }
Et que ce membre ne peut pas être initialisé à la construction de l'objet par l'opérateur new().
Le point cité par Fabien Chêne dit ceci :
15 - A new-expression that creates an object of type T initializes that object as follows : - if a new-initializer is omitted : - if T is a (possibly cv-qualified) non-POD class type (or array thereof), the object is default-initiazed (8.5). If T is a const-qualified type, the underlying class type shall have a user-declared default constructor. - otherwise, the object created has indeterminate value. If T is a const-qualified type, or a (possibly cv-qualified) POD class type (or array thereof) containing directly or indirectly a member const-qualified type, the program is ill-formed;
On se place dans ce dernier point, ce qui fait de ce programme un programme non conforme. On est bien dans le cas d'un POD (Plain Of Data, donc pas de constructeur ni rien) qui a un membre constant (ici directly).
-- Anthony Fleury
...Euh, pourquoi ce serait un bug ? Je ne comprends pas le problème !?
Tout simplement parce qu'il y a un membre constant :
struct Foo
{
int i;
double const d;
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
};
int main()
{
Foo* foo = new Foo;
}
Et que ce membre ne peut pas être initialisé à la construction de
l'objet par l'opérateur new().
Le point cité par Fabien Chêne dit ceci :
15 - A new-expression that creates an object of type T initializes that
object as follows :
- if a new-initializer is omitted :
- if T is a (possibly cv-qualified) non-POD class type (or array
thereof), the object is default-initiazed (8.5). If T is a
const-qualified type, the underlying class type shall have a
user-declared default constructor.
- otherwise, the object created has indeterminate value. If T is a
const-qualified type, or a (possibly cv-qualified) POD class type (or
array thereof) containing directly or indirectly a member
const-qualified type, the program is ill-formed;
On se place dans ce dernier point, ce qui fait de ce programme un
programme non conforme. On est bien dans le cas d'un POD (Plain Of Data,
donc pas de constructeur ni rien) qui a un membre constant (ici directly).
...Euh, pourquoi ce serait un bug ? Je ne comprends pas le problème !?
Tout simplement parce qu'il y a un membre constant :
struct Foo { int i; double const d; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
};
int main() { Foo* foo = new Foo; }
Et que ce membre ne peut pas être initialisé à la construction de l'objet par l'opérateur new().
Le point cité par Fabien Chêne dit ceci :
15 - A new-expression that creates an object of type T initializes that object as follows : - if a new-initializer is omitted : - if T is a (possibly cv-qualified) non-POD class type (or array thereof), the object is default-initiazed (8.5). If T is a const-qualified type, the underlying class type shall have a user-declared default constructor. - otherwise, the object created has indeterminate value. If T is a const-qualified type, or a (possibly cv-qualified) POD class type (or array thereof) containing directly or indirectly a member const-qualified type, the program is ill-formed;
On se place dans ce dernier point, ce qui fait de ce programme un programme non conforme. On est bien dans le cas d'un POD (Plain Of Data, donc pas de constructeur ni rien) qui a un membre constant (ici directly).
-- Anthony Fleury
Fabien LE LEZ
On 17 Jan 2006 01:01:06 -0800, "meow" :
...Euh, pourquoi ce serait un bug ?
struct Foo // POD { double const d;
Et comment veux-tu donner une valeur à d ?
Ce n'est pas possible dans le constructeur, puisqu'il n'y a pas de constructeur.
Ce n'est pas possible après, puisque d est const.
On 17 Jan 2006 01:01:06 -0800, "meow" <schwarz.ben@gmail.com>:
...Euh, pourquoi ce serait un bug ?
struct Foo // POD
{
double const d;
Et comment veux-tu donner une valeur à d ?
Ce n'est pas possible dans le constructeur, puisqu'il n'y a pas de
constructeur.
Ce n'est pas possible dans le constructeur, puisqu'il n'y a pas de constructeur.
Ce n'est pas possible après, puisque d est const.
Gabriel Dos Reis
( =?iso-8859-15?q?Fabien_CHÊNE?=) writes:
| Bonjour, | | Je pense que le code suivant n'est pas valide : | | struct Foo // POD | { | int i; | double const d; | }; | | int main() | { | Foo* foo = new Foo; // noter l'absence de new-initializer | } | | 5.3.4.15 me parait assez explicite. Commeau online me conforte dans | mon opinion, et produit une erreur à la compilation. | | G++, quand à lui (3.4.4 et 4.0.2 au moins), accepte ce code sans | sourciller. Est-ce un bug ?
| Bonjour,
|
| Je pense que le code suivant n'est pas valide :
|
| struct Foo // POD
| {
| int i;
| double const d;
| };
|
| int main()
| {
| Foo* foo = new Foo; // noter l'absence de new-initializer
| }
|
| 5.3.4.15 me parait assez explicite. Commeau online me conforte dans
| mon opinion, et produit une erreur à la compilation.
|
| G++, quand à lui (3.4.4 et 4.0.2 au moins), accepte ce code sans
| sourciller. Est-ce un bug ?
| Bonjour, | | Je pense que le code suivant n'est pas valide : | | struct Foo // POD | { | int i; | double const d; | }; | | int main() | { | Foo* foo = new Foo; // noter l'absence de new-initializer | } | | 5.3.4.15 me parait assez explicite. Commeau online me conforte dans | mon opinion, et produit une erreur à la compilation. | | G++, quand à lui (3.4.4 et 4.0.2 au moins), accepte ce code sans | sourciller. Est-ce un bug ?
Bug dans GCC/g++.
-- Gaby
meow
Et comment veux-tu donner une valeur à d ? Certes...
En fait, partant du principe qu'il y a un constructeur par défaut qui initialise à 'nimportequoi', je me suis dit que bon, il pouvait aussi initialiser mon const... Mais c'est vrai que dans la mesure où j'ai aucun moyen de modifier la valeur plus tard, d'une certaine manière c'est un constat que mon attribut const ne doit pas vraiment me servir...
Et comment veux-tu donner une valeur à d ?
Certes...
En fait, partant du principe qu'il y a un constructeur par défaut qui
initialise à 'nimportequoi', je me suis dit que bon, il pouvait aussi
initialiser mon const... Mais c'est vrai que dans la mesure où j'ai
aucun moyen de modifier la valeur plus tard, d'une certaine manière
c'est un constat que mon attribut const ne doit pas vraiment me
servir...
Et comment veux-tu donner une valeur à d ? Certes...
En fait, partant du principe qu'il y a un constructeur par défaut qui initialise à 'nimportequoi', je me suis dit que bon, il pouvait aussi initialiser mon const... Mais c'est vrai que dans la mesure où j'ai aucun moyen de modifier la valeur plus tard, d'une certaine manière c'est un constat que mon attribut const ne doit pas vraiment me servir...