Laurent Deniau writes:En l'occurrence, compiler en C++ est souvent un bon moyen de
découvrir des problèmes.
Alors je crois que tu t'avances un peu.
Nous venons de recompiler un gros programme (plusieurs dizaines de
millions de ligne de code) mixte fortran, c, c++ en compilant le c et
le c++ avec le compilateur c++. A ma connaissance, aucun probleme n'a
ete du a un changement de comportement silencieux entre c et c++.
Il a fallu changer des noms, utiliser const de maniere plus rigoureuse
(le C date parfois d'avant 89), etre plus rigoureux dans les pointeurs
sur fonction,... Mais aucun changement de comportements silencieux
(quelques problemes a cause de changements faits trop vite -- scripts
ne prevoyant pas certains cas principalement -- mais c'est autre
chose) et quelques problemes existants reveles.
Laurent Deniau <Laurent.Deniau@cern.ch> writes:
En l'occurrence, compiler en C++ est souvent un bon moyen de
découvrir des problèmes.
Alors je crois que tu t'avances un peu.
Nous venons de recompiler un gros programme (plusieurs dizaines de
millions de ligne de code) mixte fortran, c, c++ en compilant le c et
le c++ avec le compilateur c++. A ma connaissance, aucun probleme n'a
ete du a un changement de comportement silencieux entre c et c++.
Il a fallu changer des noms, utiliser const de maniere plus rigoureuse
(le C date parfois d'avant 89), etre plus rigoureux dans les pointeurs
sur fonction,... Mais aucun changement de comportements silencieux
(quelques problemes a cause de changements faits trop vite -- scripts
ne prevoyant pas certains cas principalement -- mais c'est autre
chose) et quelques problemes existants reveles.
Laurent Deniau writes:En l'occurrence, compiler en C++ est souvent un bon moyen de
découvrir des problèmes.
Alors je crois que tu t'avances un peu.
Nous venons de recompiler un gros programme (plusieurs dizaines de
millions de ligne de code) mixte fortran, c, c++ en compilant le c et
le c++ avec le compilateur c++. A ma connaissance, aucun probleme n'a
ete du a un changement de comportement silencieux entre c et c++.
Il a fallu changer des noms, utiliser const de maniere plus rigoureuse
(le C date parfois d'avant 89), etre plus rigoureux dans les pointeurs
sur fonction,... Mais aucun changement de comportements silencieux
(quelques problemes a cause de changements faits trop vite -- scripts
ne prevoyant pas certains cas principalement -- mais c'est autre
chose) et quelques problemes existants reveles.
Tu veux dire que:
- pas de struct qui porte le meme nom qu'une variable ou un typedef (le
probleme peut etre silencieux et tres vicieux).
- pas de reutilisation de struct declaree dans une struct.
- vous n'avez aucune fonction sans argument (void).
- pas d'enum.
- pas de goto.
- pas de variable const globale.
- pas de void*.
Question stupide. Pourquoi prendre le risque de compiler la partie C
d'un projet de cette taille avec un compilateur C++?
Tu veux dire que:
- pas de struct qui porte le meme nom qu'une variable ou un typedef (le
probleme peut etre silencieux et tres vicieux).
- pas de reutilisation de struct declaree dans une struct.
- vous n'avez aucune fonction sans argument (void).
- pas d'enum.
- pas de goto.
- pas de variable const globale.
- pas de void*.
Question stupide. Pourquoi prendre le risque de compiler la partie C
d'un projet de cette taille avec un compilateur C++?
Tu veux dire que:
- pas de struct qui porte le meme nom qu'une variable ou un typedef (le
probleme peut etre silencieux et tres vicieux).
- pas de reutilisation de struct declaree dans une struct.
- vous n'avez aucune fonction sans argument (void).
- pas d'enum.
- pas de goto.
- pas de variable const globale.
- pas de void*.
Question stupide. Pourquoi prendre le risque de compiler la partie C
d'un projet de cette taille avec un compilateur C++?
Jean-Marc Bourguet wrote:Laurent Deniau writes:En l'occurrence, compiler en C++ est souvent un bon moyen de
découvrir des problèmes.
Alors je crois que tu t'avances un peu.
Nous venons de recompiler un gros programme (plusieurs dizaines de
millions de ligne de code) mixte fortran, c, c++ en compilant le c et
le c++ avec le compilateur c++. A ma connaissance, aucun probleme n'a
ete du a un changement de comportement silencieux entre c et c++. Il a
fallu changer des noms, utiliser const de maniere plus rigoureuse
(le C date parfois d'avant 89), etre plus rigoureux dans les pointeurs
sur fonction,... Mais aucun changement de comportements silencieux
Tu veux dire que:
- pas de struct qui porte le meme nom qu'une variable
ou un typedef (le probleme peut etre silencieux et tres vicieux).
- pas de reutilisation de struct declaree dans une struct.
- vous n'avez aucune fonction sans argument (void).
- pas d'enum.
- pas de goto.
- pas de variable const globale.
- pas de void*.
- ...
Vous devez avoir un standard de codage tres tres strict.
Ils ont ete testes dans le details ces millions de lignes de code?
Honnetement, si tout marche bien j'aimerais savoir pour ma culture
combien de mois/homme ont ete necessaires (inclus le developpement
d'outils de conversion le cas echeant).
(quelques problemes a cause de changements faits trop vite --
scripts ne prevoyant pas certains cas principalement -- mais c'est
autre chose) et quelques problemes existants reveles.
Ce qui revient a ce que je disais.
Question stupide. Pourquoi prendre le risque de compiler la partie C
d'un projet de cette taille avec un compilateur C++?
Jean-Marc Bourguet wrote:
Laurent Deniau <Laurent.Deniau@cern.ch> writes:
En l'occurrence, compiler en C++ est souvent un bon moyen de
découvrir des problèmes.
Alors je crois que tu t'avances un peu.
Nous venons de recompiler un gros programme (plusieurs dizaines de
millions de ligne de code) mixte fortran, c, c++ en compilant le c et
le c++ avec le compilateur c++. A ma connaissance, aucun probleme n'a
ete du a un changement de comportement silencieux entre c et c++. Il a
fallu changer des noms, utiliser const de maniere plus rigoureuse
(le C date parfois d'avant 89), etre plus rigoureux dans les pointeurs
sur fonction,... Mais aucun changement de comportements silencieux
Tu veux dire que:
- pas de struct qui porte le meme nom qu'une variable
ou un typedef (le probleme peut etre silencieux et tres vicieux).
- pas de reutilisation de struct declaree dans une struct.
- vous n'avez aucune fonction sans argument (void).
- pas d'enum.
- pas de goto.
- pas de variable const globale.
- pas de void*.
- ...
Vous devez avoir un standard de codage tres tres strict.
Ils ont ete testes dans le details ces millions de lignes de code?
Honnetement, si tout marche bien j'aimerais savoir pour ma culture
combien de mois/homme ont ete necessaires (inclus le developpement
d'outils de conversion le cas echeant).
(quelques problemes a cause de changements faits trop vite --
scripts ne prevoyant pas certains cas principalement -- mais c'est
autre chose) et quelques problemes existants reveles.
Ce qui revient a ce que je disais.
Question stupide. Pourquoi prendre le risque de compiler la partie C
d'un projet de cette taille avec un compilateur C++?
Jean-Marc Bourguet wrote:Laurent Deniau writes:En l'occurrence, compiler en C++ est souvent un bon moyen de
découvrir des problèmes.
Alors je crois que tu t'avances un peu.
Nous venons de recompiler un gros programme (plusieurs dizaines de
millions de ligne de code) mixte fortran, c, c++ en compilant le c et
le c++ avec le compilateur c++. A ma connaissance, aucun probleme n'a
ete du a un changement de comportement silencieux entre c et c++. Il a
fallu changer des noms, utiliser const de maniere plus rigoureuse
(le C date parfois d'avant 89), etre plus rigoureux dans les pointeurs
sur fonction,... Mais aucun changement de comportements silencieux
Tu veux dire que:
- pas de struct qui porte le meme nom qu'une variable
ou un typedef (le probleme peut etre silencieux et tres vicieux).
- pas de reutilisation de struct declaree dans une struct.
- vous n'avez aucune fonction sans argument (void).
- pas d'enum.
- pas de goto.
- pas de variable const globale.
- pas de void*.
- ...
Vous devez avoir un standard de codage tres tres strict.
Ils ont ete testes dans le details ces millions de lignes de code?
Honnetement, si tout marche bien j'aimerais savoir pour ma culture
combien de mois/homme ont ete necessaires (inclus le developpement
d'outils de conversion le cas echeant).
(quelques problemes a cause de changements faits trop vite --
scripts ne prevoyant pas certains cas principalement -- mais c'est
autre chose) et quelques problemes existants reveles.
Ce qui revient a ce que je disais.
Question stupide. Pourquoi prendre le risque de compiler la partie C
d'un projet de cette taille avec un compilateur C++?
"Laurent Deniau" wrote in message
news:cmd5a5$hgm$Tu veux dire que:
- pas de struct qui porte le meme nom qu'une variable ou un typedef (le
probleme peut etre silencieux et tres vicieux).
l'utilisation d'une syntaxe spécifique pour les tags de structure évite ce genre
de choses.
pour ma part, il m'arrive souvent d'écrire :
typedef struct toto { ... } toto;
est-ce incorrect en C++ ?
- pas de reutilisation de struct declaree dans une struct.
- vous n'avez aucune fonction sans argument (void).
quel est le problème ?
- pas d'enum.
- pas de goto.
s'il y a que le compilateur C++ rejette, c'est sans doute qu'il faut fixer le
code C aussi.
- pas de variable const globale.
en C il est plus courant de faire des macros ou des enums justement.
- pas de void*.
ou alors proprement castés ? Le C++ fait bien chier avec ça !
Question stupide. Pourquoi prendre le risque de compiler la partie C
d'un projet de cette taille avec un compilateur C++?
Il n'y a pas de risques à compiler, au pire on perdra un peu de temps avec des
warnings ou des erreurs imaginaires, mais il est probable que certains d'entre
eux seront utiles. Quant à utiliser le code produit, ce qui est risqué, c'est
de ne pas avoir de procédure de validation sérieuse qui bien que sans doute
imparfaite permettra de détecter les problèmes graves.
"Laurent Deniau" <Laurent.Deniau@cern.ch> wrote in message
news:cmd5a5$hgm$1@sunnews.cern.ch...
Tu veux dire que:
- pas de struct qui porte le meme nom qu'une variable ou un typedef (le
probleme peut etre silencieux et tres vicieux).
l'utilisation d'une syntaxe spécifique pour les tags de structure évite ce genre
de choses.
pour ma part, il m'arrive souvent d'écrire :
typedef struct toto { ... } toto;
est-ce incorrect en C++ ?
- pas de reutilisation de struct declaree dans une struct.
- vous n'avez aucune fonction sans argument (void).
quel est le problème ?
- pas d'enum.
- pas de goto.
s'il y a que le compilateur C++ rejette, c'est sans doute qu'il faut fixer le
code C aussi.
- pas de variable const globale.
en C il est plus courant de faire des macros ou des enums justement.
- pas de void*.
ou alors proprement castés ? Le C++ fait bien chier avec ça !
Question stupide. Pourquoi prendre le risque de compiler la partie C
d'un projet de cette taille avec un compilateur C++?
Il n'y a pas de risques à compiler, au pire on perdra un peu de temps avec des
warnings ou des erreurs imaginaires, mais il est probable que certains d'entre
eux seront utiles. Quant à utiliser le code produit, ce qui est risqué, c'est
de ne pas avoir de procédure de validation sérieuse qui bien que sans doute
imparfaite permettra de détecter les problèmes graves.
"Laurent Deniau" wrote in message
news:cmd5a5$hgm$Tu veux dire que:
- pas de struct qui porte le meme nom qu'une variable ou un typedef (le
probleme peut etre silencieux et tres vicieux).
l'utilisation d'une syntaxe spécifique pour les tags de structure évite ce genre
de choses.
pour ma part, il m'arrive souvent d'écrire :
typedef struct toto { ... } toto;
est-ce incorrect en C++ ?
- pas de reutilisation de struct declaree dans une struct.
- vous n'avez aucune fonction sans argument (void).
quel est le problème ?
- pas d'enum.
- pas de goto.
s'il y a que le compilateur C++ rejette, c'est sans doute qu'il faut fixer le
code C aussi.
- pas de variable const globale.
en C il est plus courant de faire des macros ou des enums justement.
- pas de void*.
ou alors proprement castés ? Le C++ fait bien chier avec ça !
Question stupide. Pourquoi prendre le risque de compiler la partie C
d'un projet de cette taille avec un compilateur C++?
Il n'y a pas de risques à compiler, au pire on perdra un peu de temps avec des
warnings ou des erreurs imaginaires, mais il est probable que certains d'entre
eux seront utiles. Quant à utiliser le code produit, ce qui est risqué, c'est
de ne pas avoir de procédure de validation sérieuse qui bien que sans doute
imparfaite permettra de détecter les problèmes graves.
Laurent Deniau writes:Jean-Marc Bourguet wrote:
- pas de struct qui porte le meme nom qu'une variable
ou un typedef (le probleme peut etre silencieux et tres vicieux).
- pas de reutilisation de struct declaree dans une struct.
Non.- vous n'avez aucune fonction sans argument (void).
- pas d'enum.
- pas de goto.
- pas de variable const globale.
- pas de void*.
- ...
A quels problemes *silencieux* fais-tu allusion?
Laurent Deniau <Laurent.Deniau@cern.ch> writes:
Jean-Marc Bourguet wrote:
- pas de struct qui porte le meme nom qu'une variable
ou un typedef (le probleme peut etre silencieux et tres vicieux).
- pas de reutilisation de struct declaree dans une struct.
Non.
- vous n'avez aucune fonction sans argument (void).
- pas d'enum.
- pas de goto.
- pas de variable const globale.
- pas de void*.
- ...
A quels problemes *silencieux* fais-tu allusion?
Laurent Deniau writes:Jean-Marc Bourguet wrote:
- pas de struct qui porte le meme nom qu'une variable
ou un typedef (le probleme peut etre silencieux et tres vicieux).
- pas de reutilisation de struct declaree dans une struct.
Non.- vous n'avez aucune fonction sans argument (void).
- pas d'enum.
- pas de goto.
- pas de variable const globale.
- pas de void*.
- ...
A quels problemes *silencieux* fais-tu allusion?
"Laurent Deniau" wrote in message
news:cmd5a5$hgm$Tu veux dire que:
- pas de struct qui porte le meme nom qu'une variable ou un typedef (le
probleme peut etre silencieux et tres vicieux).
l'utilisation d'une syntaxe spécifique pour les tags de structure évite ce
genre de choses.
pour ma part, il m'arrive souvent d'écrire :
typedef struct toto { ... } toto;
est-ce incorrect en C++ ?
- pas de reutilisation de struct declaree dans une struct.
- vous n'avez aucune fonction sans argument (void).
quel est le problème ?
- pas d'enum.
pareil ?
- pas de goto.
s'il y a que le compilateur C++ rejette, c'est sans doute qu'il faut fixer
le code C aussi.
- pas de void*.
ou alors proprement castés ? Le C++ fait bien chier avec ça !
"Laurent Deniau" <Laurent.Deniau@cern.ch> wrote in message
news:cmd5a5$hgm$1@sunnews.cern.ch...
Tu veux dire que:
- pas de struct qui porte le meme nom qu'une variable ou un typedef (le
probleme peut etre silencieux et tres vicieux).
l'utilisation d'une syntaxe spécifique pour les tags de structure évite ce
genre de choses.
pour ma part, il m'arrive souvent d'écrire :
typedef struct toto { ... } toto;
est-ce incorrect en C++ ?
- pas de reutilisation de struct declaree dans une struct.
- vous n'avez aucune fonction sans argument (void).
quel est le problème ?
- pas d'enum.
pareil ?
- pas de goto.
s'il y a que le compilateur C++ rejette, c'est sans doute qu'il faut fixer
le code C aussi.
- pas de void*.
ou alors proprement castés ? Le C++ fait bien chier avec ça !
"Laurent Deniau" wrote in message
news:cmd5a5$hgm$Tu veux dire que:
- pas de struct qui porte le meme nom qu'une variable ou un typedef (le
probleme peut etre silencieux et tres vicieux).
l'utilisation d'une syntaxe spécifique pour les tags de structure évite ce
genre de choses.
pour ma part, il m'arrive souvent d'écrire :
typedef struct toto { ... } toto;
est-ce incorrect en C++ ?
- pas de reutilisation de struct declaree dans une struct.
- vous n'avez aucune fonction sans argument (void).
quel est le problème ?
- pas d'enum.
pareil ?
- pas de goto.
s'il y a que le compilateur C++ rejette, c'est sans doute qu'il faut fixer
le code C aussi.
- pas de void*.
ou alors proprement castés ? Le C++ fait bien chier avec ça !
est-ce incorrect en C++ ?
Oui. struct toto; fait deja de toto un type global a la TU au meme titre
que class toto;. Le typedef est redondant.
- pas de reutilisation de struct declaree dans une struct.
- vous n'avez aucune fonction sans argument (void).
quel est le problème ?
parce que int f(void) se declare int f() en C++.
est-ce incorrect en C++ ?
Oui. struct toto; fait deja de toto un type global a la TU au meme titre
que class toto;. Le typedef est redondant.
- pas de reutilisation de struct declaree dans une struct.
- vous n'avez aucune fonction sans argument (void).
quel est le problème ?
parce que int f(void) se declare int f() en C++.
est-ce incorrect en C++ ?
Oui. struct toto; fait deja de toto un type global a la TU au meme titre
que class toto;. Le typedef est redondant.
- pas de reutilisation de struct declaree dans une struct.
- vous n'avez aucune fonction sans argument (void).
quel est le problème ?
parce que int f(void) se declare int f() en C++.
Laurent Deniau writes:Jean-Marc Bourguet wrote:Laurent Deniau writes:En l'occurrence, compiler en C++ est souvent un bon moyen de
découvrir des problèmes.
Alors je crois que tu t'avances un peu.
Nous venons de recompiler un gros programme (plusieurs dizaines de
millions de ligne de code) mixte fortran, c, c++ en compilant le c et
le c++ avec le compilateur c++. A ma connaissance, aucun probleme n'a
ete du a un changement de comportement silencieux entre c et c++. Il a
fallu changer des noms, utiliser const de maniere plus rigoureuse
(le C date parfois d'avant 89), etre plus rigoureux dans les pointeurs
sur fonction,... Mais aucun changement de comportements silencieux
Tu veux dire que:
- pas de struct qui porte le meme nom qu'une variable
Je ne vois pas de probleme silencieux.
ou un typedef (le probleme peut etre silencieux et tres vicieux).
Quand un typedef avait le meme identifieur que le tag d'une struct,
c'etait un typedef sur la struct. Donc pas de probleme.
- pas de reutilisation de struct declaree dans une struct.
Non.
- vous n'avez aucune fonction sans argument (void).
- pas d'enum.
- pas de goto.
- pas de variable const globale.
- pas de void*.
- ...
A quels problemes *silencieux* fais-tu allusion?
Vous devez avoir un standard de codage tres tres strict.
Malheureusement non.Ils ont ete testes dans le details ces millions de lignes de code?
Pas mal. Nos tests (ceux de la R&D) ne couvrent certainement pas
assez, mais quand meme pas mal. Plus les tests de la validation, plus
les tests de beta (mais on n'y est pas encore, le changement a ete
fait il y a 4 ou 5 mois et le produit ne sera pas chez les clients
avant 6 mois -- c'est naturellement quelque chose qui a ete fait au
debut d'un cycle).
Question stupide. Pourquoi prendre le risque de compiler la partie C
d'un projet de cette taille avec un compilateur C++?
Pas ma decision et je n'etais pas implique. De plus les gens que je
frequente et qui etaient impliques n'etaient pas d'accord. Une
presentation des arguments par quelqu'un qui n'est pas convaincu et
qui n'a eu connaissance de ces arguments que par des gens non
convaincus n'est vraissemblablement pas significative. Une des
raisons donc est qu'on a remplace un composant d'assez bas niveau par
quelque chose ecrit en C++ et qu'il y a un desir de se passer de la
couche presentant l'interface C du composant precedant (pour des
raisons de perf et d'acces a des possibilites supplementaires). Il y
a aussi un desir de restructurer des choses en utilisant les
possibilites d'abstraction supplementaires du C++.
Laurent Deniau <Laurent.Deniau@cern.ch> writes:
Jean-Marc Bourguet wrote:
Laurent Deniau <Laurent.Deniau@cern.ch> writes:
En l'occurrence, compiler en C++ est souvent un bon moyen de
découvrir des problèmes.
Alors je crois que tu t'avances un peu.
Nous venons de recompiler un gros programme (plusieurs dizaines de
millions de ligne de code) mixte fortran, c, c++ en compilant le c et
le c++ avec le compilateur c++. A ma connaissance, aucun probleme n'a
ete du a un changement de comportement silencieux entre c et c++. Il a
fallu changer des noms, utiliser const de maniere plus rigoureuse
(le C date parfois d'avant 89), etre plus rigoureux dans les pointeurs
sur fonction,... Mais aucun changement de comportements silencieux
Tu veux dire que:
- pas de struct qui porte le meme nom qu'une variable
Je ne vois pas de probleme silencieux.
ou un typedef (le probleme peut etre silencieux et tres vicieux).
Quand un typedef avait le meme identifieur que le tag d'une struct,
c'etait un typedef sur la struct. Donc pas de probleme.
- pas de reutilisation de struct declaree dans une struct.
Non.
- vous n'avez aucune fonction sans argument (void).
- pas d'enum.
- pas de goto.
- pas de variable const globale.
- pas de void*.
- ...
A quels problemes *silencieux* fais-tu allusion?
Vous devez avoir un standard de codage tres tres strict.
Malheureusement non.
Ils ont ete testes dans le details ces millions de lignes de code?
Pas mal. Nos tests (ceux de la R&D) ne couvrent certainement pas
assez, mais quand meme pas mal. Plus les tests de la validation, plus
les tests de beta (mais on n'y est pas encore, le changement a ete
fait il y a 4 ou 5 mois et le produit ne sera pas chez les clients
avant 6 mois -- c'est naturellement quelque chose qui a ete fait au
debut d'un cycle).
Question stupide. Pourquoi prendre le risque de compiler la partie C
d'un projet de cette taille avec un compilateur C++?
Pas ma decision et je n'etais pas implique. De plus les gens que je
frequente et qui etaient impliques n'etaient pas d'accord. Une
presentation des arguments par quelqu'un qui n'est pas convaincu et
qui n'a eu connaissance de ces arguments que par des gens non
convaincus n'est vraissemblablement pas significative. Une des
raisons donc est qu'on a remplace un composant d'assez bas niveau par
quelque chose ecrit en C++ et qu'il y a un desir de se passer de la
couche presentant l'interface C du composant precedant (pour des
raisons de perf et d'acces a des possibilites supplementaires). Il y
a aussi un desir de restructurer des choses en utilisant les
possibilites d'abstraction supplementaires du C++.
Laurent Deniau writes:Jean-Marc Bourguet wrote:Laurent Deniau writes:En l'occurrence, compiler en C++ est souvent un bon moyen de
découvrir des problèmes.
Alors je crois que tu t'avances un peu.
Nous venons de recompiler un gros programme (plusieurs dizaines de
millions de ligne de code) mixte fortran, c, c++ en compilant le c et
le c++ avec le compilateur c++. A ma connaissance, aucun probleme n'a
ete du a un changement de comportement silencieux entre c et c++. Il a
fallu changer des noms, utiliser const de maniere plus rigoureuse
(le C date parfois d'avant 89), etre plus rigoureux dans les pointeurs
sur fonction,... Mais aucun changement de comportements silencieux
Tu veux dire que:
- pas de struct qui porte le meme nom qu'une variable
Je ne vois pas de probleme silencieux.
ou un typedef (le probleme peut etre silencieux et tres vicieux).
Quand un typedef avait le meme identifieur que le tag d'une struct,
c'etait un typedef sur la struct. Donc pas de probleme.
- pas de reutilisation de struct declaree dans une struct.
Non.
- vous n'avez aucune fonction sans argument (void).
- pas d'enum.
- pas de goto.
- pas de variable const globale.
- pas de void*.
- ...
A quels problemes *silencieux* fais-tu allusion?
Vous devez avoir un standard de codage tres tres strict.
Malheureusement non.Ils ont ete testes dans le details ces millions de lignes de code?
Pas mal. Nos tests (ceux de la R&D) ne couvrent certainement pas
assez, mais quand meme pas mal. Plus les tests de la validation, plus
les tests de beta (mais on n'y est pas encore, le changement a ete
fait il y a 4 ou 5 mois et le produit ne sera pas chez les clients
avant 6 mois -- c'est naturellement quelque chose qui a ete fait au
debut d'un cycle).
Question stupide. Pourquoi prendre le risque de compiler la partie C
d'un projet de cette taille avec un compilateur C++?
Pas ma decision et je n'etais pas implique. De plus les gens que je
frequente et qui etaient impliques n'etaient pas d'accord. Une
presentation des arguments par quelqu'un qui n'est pas convaincu et
qui n'a eu connaissance de ces arguments que par des gens non
convaincus n'est vraissemblablement pas significative. Une des
raisons donc est qu'on a remplace un composant d'assez bas niveau par
quelque chose ecrit en C++ et qu'il y a un desir de se passer de la
couche presentant l'interface C du composant precedant (pour des
raisons de perf et d'acces a des possibilites supplementaires). Il y
a aussi un desir de restructurer des choses en utilisant les
possibilites d'abstraction supplementaires du C++.
Jean-Marc Bourguet wrote:Quand un typedef avait le meme identifieur que le tag d'une struct,
c'etait un typedef sur la struct. Donc pas de probleme.
Si ca compile pas en C++ et c'est legal (voir courant) en C.
A quels problemes *silencieux* fais-tu allusion?
Pour la plupart ils ne sont pas silencieux mais demande du travail.
cf mon autre post pour les problemes
Jean-Marc Bourguet wrote:
Quand un typedef avait le meme identifieur que le tag d'une struct,
c'etait un typedef sur la struct. Donc pas de probleme.
Si ca compile pas en C++ et c'est legal (voir courant) en C.
A quels problemes *silencieux* fais-tu allusion?
Pour la plupart ils ne sont pas silencieux mais demande du travail.
cf mon autre post pour les problemes
Jean-Marc Bourguet wrote:Quand un typedef avait le meme identifieur que le tag d'une struct,
c'etait un typedef sur la struct. Donc pas de probleme.
Si ca compile pas en C++ et c'est legal (voir courant) en C.
A quels problemes *silencieux* fais-tu allusion?
Pour la plupart ils ne sont pas silencieux mais demande du travail.
cf mon autre post pour les problemes
Laurent Deniau writes:est-ce incorrect en C++ ?
Oui. struct toto; fait deja de toto un type global a la TU au meme titre
que class toto;. Le typedef est redondant.
Ce n'est pas idiomatique, c'est du C++ correct.
- pas de reutilisation de struct declaree dans une struct.
- vous n'avez aucune fonction sans argument (void).
quel est le problème ?
parce que int f(void) se declare int f() en C++.
A nouveau, pas idiomatique mais correct.
Laurent Deniau <Laurent.Deniau@cern.ch> writes:
est-ce incorrect en C++ ?
Oui. struct toto; fait deja de toto un type global a la TU au meme titre
que class toto;. Le typedef est redondant.
Ce n'est pas idiomatique, c'est du C++ correct.
- pas de reutilisation de struct declaree dans une struct.
- vous n'avez aucune fonction sans argument (void).
quel est le problème ?
parce que int f(void) se declare int f() en C++.
A nouveau, pas idiomatique mais correct.
Laurent Deniau writes:est-ce incorrect en C++ ?
Oui. struct toto; fait deja de toto un type global a la TU au meme titre
que class toto;. Le typedef est redondant.
Ce n'est pas idiomatique, c'est du C++ correct.
- pas de reutilisation de struct declaree dans une struct.
- vous n'avez aucune fonction sans argument (void).
quel est le problème ?
parce que int f(void) se declare int f() en C++.
A nouveau, pas idiomatique mais correct.