j'ai du mal avec un code C++, et je soupsonne un bug de GCC 3.3.x.
Je n'arrive néanmoins pas à le trouver dans la base de donnée
des bugs (mais j'utilise peut-être pas les bons mots clef).
Voilà, est-ce que le nombre de caractères significatifs pour
une classe pourrait-être tout petit en GCC 3.3 ?
J'ai deux classes template: StateSpace et StateSpaceNode,
et je me demande s'il ne les confond pas parfois.
Si vous en avez connaissance, merci de me le dire avant que je
tente le passage à GCC 3.4 (je suis pas partant, ma tentative
de passage 3.2 à 3.3 a conduit à une réinstallation complète
de la machine: oui, je suis nul en administration Linux).
Merci d'avance,
Marc Boyer
--
Je ne respecte plus le code de la route à vélo depuis une double fracture
due au fait que j'étais le seul à le respecter.
| Gabriel Dos Reis wrote: | > Laurent Deniau writes: | > | Marc Boyer wrote: | > | > In article <cnvf5h$74f$, Laurent Deniau wrote: | > | > | > | >>Marc Boyer wrote: | > | >> | > | >>>In article <cnv6vg$i1i$, Laurent Deniau wrote: | > | >>> | > | >>>> Pour un outil standard au C, il vaut mieux s'en tenir a quelque | > | >>>> chose de simple... | > | >>> | > | >>> | > | >>> Simple oui, mais est-ce qu'un rien de sécurité en plus ne serait pas | > | >>>utile. | > | >>> Genre | > | >>> #definelocal pour définir une macro de portée locale, ou un | > | >>> #includeonce | > | >>> qui gère tout seule l'inclusion multiple, etc... | > | >> | > | >> Le probleme c'est que le (seul) scope de cpp, c'est la TU. Alors | > | >> local signifie quoi ici? Les scopes du C? | > | > Local au fichier par exemple. Ou introduire des portées en cpp. | > | | TU = translation unit, ce que tu appelles le fichier. | > | Des portees en cpp? Definies par quoi? | > Par forcément des portées mais des régions de texte. Voir la | > proposition « #nospam » de BS. | | as-tu un lien? Inutile de dire que Stroustrup+#nospam avec google, ca | explose ;-) Rien trouve non plus sur sa home page.
(La prochaine version de cette proposition n'utilisera probablement pas « scope », puisque cela crée certaines confusions. Moi, j'aime bien « #nospam » -- comme on peut le voir dans la liste de EWG -- mais cela semble politiquement pour certains).
Interessant. Cela ouvre des possibilites, surtout pour le C, d'imbriquer plusieurs niveaux de codes generiques. Ca devrait interesser Marc et ca BPL ;-)
a+, ld.
Gabriel Dos Reis wrote:
Laurent Deniau <Laurent.Deniau@cern.ch> writes:
| Gabriel Dos Reis wrote:
| > Laurent Deniau <Laurent.Deniau@cern.ch> writes:
| > | Marc Boyer wrote:
| > | > In article <cnvf5h$74f$1@sunnews.cern.ch>, Laurent Deniau wrote:
| > | >
| > | >>Marc Boyer wrote:
| > | >>
| > | >>>In article <cnv6vg$i1i$1@sunnews.cern.ch>, Laurent Deniau wrote:
| > | >>>
| > | >>>> Pour un outil standard au C, il vaut mieux s'en tenir a quelque
| > | >>>> chose de simple...
| > | >>>
| > | >>>
| > | >>> Simple oui, mais est-ce qu'un rien de sécurité en plus ne serait pas
| > | >>>utile.
| > | >>> Genre
| > | >>> #definelocal pour définir une macro de portée locale, ou un
| > | >>> #includeonce
| > | >>> qui gère tout seule l'inclusion multiple, etc...
| > | >>
| > | >> Le probleme c'est que le (seul) scope de cpp, c'est la TU. Alors
| > | >> local signifie quoi ici? Les scopes du C?
| > | > Local au fichier par exemple. Ou introduire des portées en cpp.
| > | | TU = translation unit, ce que tu appelles le fichier.
| > | Des portees en cpp? Definies par quoi?
| > Par forcément des portées mais des régions de texte. Voir la
| > proposition « #nospam » de BS.
|
| as-tu un lien? Inutile de dire que Stroustrup+#nospam avec google, ca
| explose ;-) Rien trouve non plus sur sa home page.
(La prochaine version de cette proposition n'utilisera probablement
pas « scope », puisque cela crée certaines confusions. Moi, j'aime
bien « #nospam » -- comme on peut le voir dans la liste de EWG -- mais
cela semble politiquement pour certains).
Interessant. Cela ouvre des possibilites, surtout pour le C, d'imbriquer
plusieurs niveaux de codes generiques. Ca devrait interesser Marc et ca
BPL ;-)
| Gabriel Dos Reis wrote: | > Laurent Deniau writes: | > | Marc Boyer wrote: | > | > In article <cnvf5h$74f$, Laurent Deniau wrote: | > | > | > | >>Marc Boyer wrote: | > | >> | > | >>>In article <cnv6vg$i1i$, Laurent Deniau wrote: | > | >>> | > | >>>> Pour un outil standard au C, il vaut mieux s'en tenir a quelque | > | >>>> chose de simple... | > | >>> | > | >>> | > | >>> Simple oui, mais est-ce qu'un rien de sécurité en plus ne serait pas | > | >>>utile. | > | >>> Genre | > | >>> #definelocal pour définir une macro de portée locale, ou un | > | >>> #includeonce | > | >>> qui gère tout seule l'inclusion multiple, etc... | > | >> | > | >> Le probleme c'est que le (seul) scope de cpp, c'est la TU. Alors | > | >> local signifie quoi ici? Les scopes du C? | > | > Local au fichier par exemple. Ou introduire des portées en cpp. | > | | TU = translation unit, ce que tu appelles le fichier. | > | Des portees en cpp? Definies par quoi? | > Par forcément des portées mais des régions de texte. Voir la | > proposition « #nospam » de BS. | | as-tu un lien? Inutile de dire que Stroustrup+#nospam avec google, ca | explose ;-) Rien trouve non plus sur sa home page.
(La prochaine version de cette proposition n'utilisera probablement pas « scope », puisque cela crée certaines confusions. Moi, j'aime bien « #nospam » -- comme on peut le voir dans la liste de EWG -- mais cela semble politiquement pour certains).
Interessant. Cela ouvre des possibilites, surtout pour le C, d'imbriquer plusieurs niveaux de codes generiques. Ca devrait interesser Marc et ca BPL ;-)
a+, ld.
Laurent Deniau
Gabriel Dos Reis wrote:
Laurent Deniau writes:
| Gabriel Dos Reis wrote: | > Laurent Deniau writes: | > | Marc Boyer wrote: | > | > In article <cnvf5h$74f$, Laurent Deniau wrote: | > | > | > | >>Marc Boyer wrote: | > | >> | > | >>>In article <cnv6vg$i1i$, Laurent Deniau wrote: | > | >>> | > | >>>> Pour un outil standard au C, il vaut mieux s'en tenir a quelque | > | >>>> chose de simple... | > | >>> | > | >>> | > | >>> Simple oui, mais est-ce qu'un rien de sécurité en plus ne serait pas | > | >>>utile. | > | >>> Genre | > | >>> #definelocal pour définir une macro de portée locale, ou un | > | >>> #includeonce | > | >>> qui gère tout seule l'inclusion multiple, etc... | > | >> | > | >> Le probleme c'est que le (seul) scope de cpp, c'est la TU. Alors | > | >> local signifie quoi ici? Les scopes du C? | > | > Local au fichier par exemple. Ou introduire des portées en cpp. | > | | TU = translation unit, ce que tu appelles le fichier. | > | Des portees en cpp? Definies par quoi? | > Par forcément des portées mais des régions de texte. Voir la | > proposition « #nospam » de BS. | | as-tu un lien? Inutile de dire que Stroustrup+#nospam avec google, ca | explose ;-) Rien trouve non plus sur sa home page.
(La prochaine version de cette proposition n'utilisera probablement pas « scope », puisque cela crée certaines confusions. Moi, j'aime bien « #nospam » -- comme on peut le voir dans la liste de EWG -- mais cela semble politiquement pour certains).
En y regardant a deux fois, le fait de bloquer par defaut toutes les macros du scope englobant peut poser des problemes. Je pense notament a la redefinition en macro des variables globales comme errno dans le contexte des threads (je sais que la norme ne parle pas des threads, mais dans la pratique...). Il faudrait peut-etre avoir qque chose comme #importstd qui importe automatiquement toutes les macros definies par le compilateur.
a+, ld.
Gabriel Dos Reis wrote:
Laurent Deniau <Laurent.Deniau@cern.ch> writes:
| Gabriel Dos Reis wrote:
| > Laurent Deniau <Laurent.Deniau@cern.ch> writes:
| > | Marc Boyer wrote:
| > | > In article <cnvf5h$74f$1@sunnews.cern.ch>, Laurent Deniau wrote:
| > | >
| > | >>Marc Boyer wrote:
| > | >>
| > | >>>In article <cnv6vg$i1i$1@sunnews.cern.ch>, Laurent Deniau wrote:
| > | >>>
| > | >>>> Pour un outil standard au C, il vaut mieux s'en tenir a quelque
| > | >>>> chose de simple...
| > | >>>
| > | >>>
| > | >>> Simple oui, mais est-ce qu'un rien de sécurité en plus ne serait pas
| > | >>>utile.
| > | >>> Genre
| > | >>> #definelocal pour définir une macro de portée locale, ou un
| > | >>> #includeonce
| > | >>> qui gère tout seule l'inclusion multiple, etc...
| > | >>
| > | >> Le probleme c'est que le (seul) scope de cpp, c'est la TU. Alors
| > | >> local signifie quoi ici? Les scopes du C?
| > | > Local au fichier par exemple. Ou introduire des portées en cpp.
| > | | TU = translation unit, ce que tu appelles le fichier.
| > | Des portees en cpp? Definies par quoi?
| > Par forcément des portées mais des régions de texte. Voir la
| > proposition « #nospam » de BS.
|
| as-tu un lien? Inutile de dire que Stroustrup+#nospam avec google, ca
| explose ;-) Rien trouve non plus sur sa home page.
(La prochaine version de cette proposition n'utilisera probablement
pas « scope », puisque cela crée certaines confusions. Moi, j'aime
bien « #nospam » -- comme on peut le voir dans la liste de EWG -- mais
cela semble politiquement pour certains).
En y regardant a deux fois, le fait de bloquer par defaut toutes les
macros du scope englobant peut poser des problemes. Je pense notament a
la redefinition en macro des variables globales comme errno dans le
contexte des threads (je sais que la norme ne parle pas des threads,
mais dans la pratique...). Il faudrait peut-etre avoir qque chose comme
#importstd qui importe automatiquement toutes les macros definies par le
compilateur.
| Gabriel Dos Reis wrote: | > Laurent Deniau writes: | > | Marc Boyer wrote: | > | > In article <cnvf5h$74f$, Laurent Deniau wrote: | > | > | > | >>Marc Boyer wrote: | > | >> | > | >>>In article <cnv6vg$i1i$, Laurent Deniau wrote: | > | >>> | > | >>>> Pour un outil standard au C, il vaut mieux s'en tenir a quelque | > | >>>> chose de simple... | > | >>> | > | >>> | > | >>> Simple oui, mais est-ce qu'un rien de sécurité en plus ne serait pas | > | >>>utile. | > | >>> Genre | > | >>> #definelocal pour définir une macro de portée locale, ou un | > | >>> #includeonce | > | >>> qui gère tout seule l'inclusion multiple, etc... | > | >> | > | >> Le probleme c'est que le (seul) scope de cpp, c'est la TU. Alors | > | >> local signifie quoi ici? Les scopes du C? | > | > Local au fichier par exemple. Ou introduire des portées en cpp. | > | | TU = translation unit, ce que tu appelles le fichier. | > | Des portees en cpp? Definies par quoi? | > Par forcément des portées mais des régions de texte. Voir la | > proposition « #nospam » de BS. | | as-tu un lien? Inutile de dire que Stroustrup+#nospam avec google, ca | explose ;-) Rien trouve non plus sur sa home page.
(La prochaine version de cette proposition n'utilisera probablement pas « scope », puisque cela crée certaines confusions. Moi, j'aime bien « #nospam » -- comme on peut le voir dans la liste de EWG -- mais cela semble politiquement pour certains).
En y regardant a deux fois, le fait de bloquer par defaut toutes les macros du scope englobant peut poser des problemes. Je pense notament a la redefinition en macro des variables globales comme errno dans le contexte des threads (je sais que la norme ne parle pas des threads, mais dans la pratique...). Il faudrait peut-etre avoir qque chose comme #importstd qui importe automatiquement toutes les macros definies par le compilateur.
a+, ld.
Marc Boyer
Laurent Deniau wrote:
Marc Boyer wrote:
Ca ressemble presque non?
Oui, mais tu te le fais à la main.
#openscope #closescope
aussi. Les defines, c'est autre chose, ils sont la pour caracteriser l'interface.
J'ai aussi le même genre de chose dans la BPL: #include "CleanVectorMacros.h"
Ca ce n'est pas la meme chose. OpenInterface et CloseInterface change en fonction du contexte, notament OpenInterface #undef OpenInterface et #define CloseInterface pour verifier la parite. Toi tu charges un fichier pour faire du nettoyage.
OK, tu as ajouté un niveau de généricité.
Tiens, parlons du pb de perf: j'ai entendu des gens se plaindre que le mécanisme de protection contre l'inclusion multiple était couteux parce que cpp doit re-parser chaque fois le fichier pour constater que le #endif est bien à la fin du fichier. Avec un #includeonce (ou #import ou autre), on résoud ce problème.
Et on en creer d'autre. #import (present dans Objective-C) est tres controverse. Si ces gens voient un probleme de performance, ils peuvent rajouter des balises autour des includes, comme le preconise Lakos.
Je connais pas de Lakos, même si je connaissais la technique. J'ai toujours été étonné par cette technique: il me semblerait plus raisonnable de jouer avec le -I et de faire des trucs du genre Fichier "UnHeader.h" #ifndef UNHEADER_ID #define UNHEADER_ID #include "reals_include/UnHeader.h" #endif
Marc Boyer -- Je ne respecte plus le code de la route à vélo depuis une double fracture due au fait que j'étais le seul à le respecter.
Laurent Deniau wrote:
Marc Boyer wrote:
Ca ressemble presque non?
Oui, mais tu te le fais à la main.
#openscope
#closescope
aussi. Les defines, c'est autre chose, ils sont la pour caracteriser
l'interface.
J'ai aussi le même genre de chose dans la BPL:
#include "CleanVectorMacros.h"
Ca ce n'est pas la meme chose. OpenInterface et CloseInterface change en
fonction du contexte, notament OpenInterface #undef OpenInterface et
#define CloseInterface pour verifier la parite. Toi tu charges un
fichier pour faire du nettoyage.
OK, tu as ajouté un niveau de généricité.
Tiens, parlons du pb de perf: j'ai entendu des gens se plaindre
que le mécanisme de protection contre l'inclusion multiple était
couteux parce que cpp doit re-parser chaque fois le fichier
pour constater que le #endif est bien à la fin du fichier.
Avec un #includeonce (ou #import ou autre), on résoud ce
problème.
Et on en creer d'autre. #import (present dans Objective-C) est tres
controverse. Si ces gens voient un probleme de performance, ils peuvent
rajouter des balises autour des includes, comme le preconise Lakos.
Je connais pas de Lakos, même si je connaissais la technique.
J'ai toujours été étonné par cette technique: il me semblerait plus
raisonnable de jouer avec le -I et de faire des trucs du genre
Fichier "UnHeader.h"
#ifndef UNHEADER_ID
#define UNHEADER_ID
#include "reals_include/UnHeader.h"
#endif
Marc Boyer
--
Je ne respecte plus le code de la route à vélo depuis une double fracture
due au fait que j'étais le seul à le respecter.
aussi. Les defines, c'est autre chose, ils sont la pour caracteriser l'interface.
J'ai aussi le même genre de chose dans la BPL: #include "CleanVectorMacros.h"
Ca ce n'est pas la meme chose. OpenInterface et CloseInterface change en fonction du contexte, notament OpenInterface #undef OpenInterface et #define CloseInterface pour verifier la parite. Toi tu charges un fichier pour faire du nettoyage.
OK, tu as ajouté un niveau de généricité.
Tiens, parlons du pb de perf: j'ai entendu des gens se plaindre que le mécanisme de protection contre l'inclusion multiple était couteux parce que cpp doit re-parser chaque fois le fichier pour constater que le #endif est bien à la fin du fichier. Avec un #includeonce (ou #import ou autre), on résoud ce problème.
Et on en creer d'autre. #import (present dans Objective-C) est tres controverse. Si ces gens voient un probleme de performance, ils peuvent rajouter des balises autour des includes, comme le preconise Lakos.
Je connais pas de Lakos, même si je connaissais la technique. J'ai toujours été étonné par cette technique: il me semblerait plus raisonnable de jouer avec le -I et de faire des trucs du genre Fichier "UnHeader.h" #ifndef UNHEADER_ID #define UNHEADER_ID #include "reals_include/UnHeader.h" #endif
Marc Boyer -- Je ne respecte plus le code de la route à vélo depuis une double fracture due au fait que j'étais le seul à le respecter.
Marc Boyer
In article <co1raa$ks8$, Laurent Deniau wrote:
Interessant. Cela ouvre des possibilites, surtout pour le C, d'imbriquer plusieurs niveaux de codes generiques. Ca devrait interesser Marc et ca BPL ;-)
Je vais regarder le lien (mais surtout attendre de voir ce que deviens la proposition, puis voir si elle passe en C, et si oui dans quel état). On en reparle dans 10 ans sur fclc ;-) ?
Marc Boyer -- Je ne respecte plus le code de la route à vélo depuis une double fracture due au fait que j'étais le seul à le respecter.
In article <co1raa$ks8$1@sunnews.cern.ch>, Laurent Deniau wrote:
Interessant. Cela ouvre des possibilites, surtout pour le C, d'imbriquer
plusieurs niveaux de codes generiques. Ca devrait interesser Marc et ca
BPL ;-)
Je vais regarder le lien (mais surtout attendre de voir ce que deviens
la proposition, puis voir si elle passe en C, et si oui dans quel
état).
On en reparle dans 10 ans sur fclc ;-) ?
Marc Boyer
--
Je ne respecte plus le code de la route à vélo depuis une double fracture
due au fait que j'étais le seul à le respecter.
Interessant. Cela ouvre des possibilites, surtout pour le C, d'imbriquer plusieurs niveaux de codes generiques. Ca devrait interesser Marc et ca BPL ;-)
Je vais regarder le lien (mais surtout attendre de voir ce que deviens la proposition, puis voir si elle passe en C, et si oui dans quel état). On en reparle dans 10 ans sur fclc ;-) ?
Marc Boyer -- Je ne respecte plus le code de la route à vélo depuis une double fracture due au fait que j'étais le seul à le respecter.
Marc Boyer
Gabriel Dos Reis wrote:
Laurent Deniau writes: | | TU = translation unit, ce que tu appelles le fichier. | Des portees en cpp? Definies par quoi?
Par forcément des portées mais des régions de texte. Voir la proposition « #nospam » de BS.
Je viens de lire le papier, c'est diablement intéressant comme chose.
Marc Boyer -- Je ne respecte plus le code de la route à vélo depuis une double fracture due au fait que j'étais le seul à le respecter.
Gabriel Dos Reis wrote:
Laurent Deniau <Laurent.Deniau@cern.ch> writes:
|
| TU = translation unit, ce que tu appelles le fichier.
| Des portees en cpp? Definies par quoi?
Par forcément des portées mais des régions de texte. Voir la
proposition « #nospam » de BS.
Je viens de lire le papier, c'est diablement intéressant comme chose.
Marc Boyer
--
Je ne respecte plus le code de la route à vélo depuis une double fracture
due au fait que j'étais le seul à le respecter.
Laurent Deniau writes: | | TU = translation unit, ce que tu appelles le fichier. | Des portees en cpp? Definies par quoi?
Par forcément des portées mais des régions de texte. Voir la proposition « #nospam » de BS.
Je viens de lire le papier, c'est diablement intéressant comme chose.
Marc Boyer -- Je ne respecte plus le code de la route à vélo depuis une double fracture due au fait que j'étais le seul à le respecter.
Gabriel Dos Reis
Laurent Deniau writes:
| Gabriel Dos Reis wrote: | > Laurent Deniau writes: | > | Gabriel Dos Reis wrote: | > | > Laurent Deniau writes: | > | > | Marc Boyer wrote: | > | > | > In article <cnvf5h$74f$, Laurent Deniau wrote: | > | > | > | > | > | >>Marc Boyer wrote: | > | > | >> | > | > | >>>In article <cnv6vg$i1i$, Laurent Deniau wrote: | > | > | >>> | > | > | >>>> Pour un outil standard au C, il vaut mieux s'en tenir a quelque | > | > | >>>> chose de simple... | > | > | >>> | > | > | >>> | > | > | >>> Simple oui, mais est-ce qu'un rien de sécurité en plus ne serait pas | > | > | >>>utile. | > | > | >>> Genre | > | > | >>> #definelocal pour définir une macro de portée locale, ou un | > | > | >>> #includeonce | > | > | >>> qui gère tout seule l'inclusion multiple, etc... | > | > | >> | > | > | >> Le probleme c'est que le (seul) scope de cpp, c'est la TU. Alors | > | > | >> local signifie quoi ici? Les scopes du C? | > | > | > Local au fichier par exemple. Ou introduire des portées en cpp. | > | > | | TU = translation unit, ce que tu appelles le fichier. | > | > | Des portees en cpp? Definies par quoi? | > | > Par forcément des portées mais des régions de texte. Voir la | > | > proposition « #nospam » de BS. | > | | as-tu un lien? Inutile de dire que Stroustrup+#nospam avec | > google, ca | > | explose ;-) Rien trouve non plus sur sa home page. | > http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2004/n1614.pdf | > (La prochaine version de cette proposition n'utilisera probablement | > pas « scope », puisque cela crée certaines confusions. Moi, j'aime | > bien « #nospam » -- comme on peut le voir dans la liste de EWG -- mais | > cela semble politiquement pour certains). | | En y regardant a deux fois, le fait de bloquer par defaut toutes les | macros du scope englobant peut poser des problemes.
C'est voulu :-)
L'un des buts non avoués est de montrer qu'il est possible de programmer proprement et élégamment sans les macros. Une fois cette étape franchie, la question du banissement de Cpp devient une formalité :-) Mais les changements prennent du temps...
-- Gaby
Laurent Deniau <Laurent.Deniau@cern.ch> writes:
| Gabriel Dos Reis wrote:
| > Laurent Deniau <Laurent.Deniau@cern.ch> writes:
| > | Gabriel Dos Reis wrote:
| > | > Laurent Deniau <Laurent.Deniau@cern.ch> writes:
| > | > | Marc Boyer wrote:
| > | > | > In article <cnvf5h$74f$1@sunnews.cern.ch>, Laurent Deniau wrote:
| > | > | >
| > | > | >>Marc Boyer wrote:
| > | > | >>
| > | > | >>>In article <cnv6vg$i1i$1@sunnews.cern.ch>, Laurent Deniau wrote:
| > | > | >>>
| > | > | >>>> Pour un outil standard au C, il vaut mieux s'en tenir a quelque
| > | > | >>>> chose de simple...
| > | > | >>>
| > | > | >>>
| > | > | >>> Simple oui, mais est-ce qu'un rien de sécurité en plus ne serait pas
| > | > | >>>utile.
| > | > | >>> Genre
| > | > | >>> #definelocal pour définir une macro de portée locale, ou un
| > | > | >>> #includeonce
| > | > | >>> qui gère tout seule l'inclusion multiple, etc...
| > | > | >>
| > | > | >> Le probleme c'est que le (seul) scope de cpp, c'est la TU. Alors
| > | > | >> local signifie quoi ici? Les scopes du C?
| > | > | > Local au fichier par exemple. Ou introduire des portées en cpp.
| > | > | | TU = translation unit, ce que tu appelles le fichier.
| > | > | Des portees en cpp? Definies par quoi?
| > | > Par forcément des portées mais des régions de texte. Voir la
| > | > proposition « #nospam » de BS.
| > | | as-tu un lien? Inutile de dire que Stroustrup+#nospam avec
| > google, ca
| > | explose ;-) Rien trouve non plus sur sa home page.
| > http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2004/n1614.pdf
| > (La prochaine version de cette proposition n'utilisera probablement
| > pas « scope », puisque cela crée certaines confusions. Moi, j'aime
| > bien « #nospam » -- comme on peut le voir dans la liste de EWG -- mais
| > cela semble politiquement pour certains).
|
| En y regardant a deux fois, le fait de bloquer par defaut toutes les
| macros du scope englobant peut poser des problemes.
C'est voulu :-)
L'un des buts non avoués est de montrer qu'il est possible de
programmer proprement et élégamment sans les macros. Une fois cette
étape franchie, la question du banissement de Cpp devient une
formalité :-) Mais les changements prennent du temps...
| Gabriel Dos Reis wrote: | > Laurent Deniau writes: | > | Gabriel Dos Reis wrote: | > | > Laurent Deniau writes: | > | > | Marc Boyer wrote: | > | > | > In article <cnvf5h$74f$, Laurent Deniau wrote: | > | > | > | > | > | >>Marc Boyer wrote: | > | > | >> | > | > | >>>In article <cnv6vg$i1i$, Laurent Deniau wrote: | > | > | >>> | > | > | >>>> Pour un outil standard au C, il vaut mieux s'en tenir a quelque | > | > | >>>> chose de simple... | > | > | >>> | > | > | >>> | > | > | >>> Simple oui, mais est-ce qu'un rien de sécurité en plus ne serait pas | > | > | >>>utile. | > | > | >>> Genre | > | > | >>> #definelocal pour définir une macro de portée locale, ou un | > | > | >>> #includeonce | > | > | >>> qui gère tout seule l'inclusion multiple, etc... | > | > | >> | > | > | >> Le probleme c'est que le (seul) scope de cpp, c'est la TU. Alors | > | > | >> local signifie quoi ici? Les scopes du C? | > | > | > Local au fichier par exemple. Ou introduire des portées en cpp. | > | > | | TU = translation unit, ce que tu appelles le fichier. | > | > | Des portees en cpp? Definies par quoi? | > | > Par forcément des portées mais des régions de texte. Voir la | > | > proposition « #nospam » de BS. | > | | as-tu un lien? Inutile de dire que Stroustrup+#nospam avec | > google, ca | > | explose ;-) Rien trouve non plus sur sa home page. | > http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2004/n1614.pdf | > (La prochaine version de cette proposition n'utilisera probablement | > pas « scope », puisque cela crée certaines confusions. Moi, j'aime | > bien « #nospam » -- comme on peut le voir dans la liste de EWG -- mais | > cela semble politiquement pour certains). | | En y regardant a deux fois, le fait de bloquer par defaut toutes les | macros du scope englobant peut poser des problemes.
C'est voulu :-)
L'un des buts non avoués est de montrer qu'il est possible de programmer proprement et élégamment sans les macros. Une fois cette étape franchie, la question du banissement de Cpp devient une formalité :-) Mais les changements prennent du temps...
| > (La prochaine version de cette proposition n'utilisera probablement | > pas « scope », puisque cela crée certaines confusions. Moi, j'aime | > bien « #nospam » -- comme on peut le voir dans la liste de EWG -- mais | > cela semble politiquement pour certains).
| Étrange. Je trouve que « scope » est très bien.
Alors c'est que « scope » crée vraiment de la confusion :-)
| De quelles | confusions parles-tu ? Avec la définition de scope du C++ ?
Regarde la contre-proposotion de Tom Plum dans les pre- et/ou post-mainling de Redmond.
Il y a n1726 et n1740 dans le mailing post-Redmond. Il n'y emploit en effet plus « scope », sans toutefois proposer encore de nouveau nom :
2. The syntax and "begin-end" matching of the "new region" marker remains the most contentious issue; see below. For purposes of discussion, let's use an obviously-invalid place-holder :
xxx-begin-macro-region ... xxx-end-macro-region
Il renseigne également l'adresse du wiki utilisé pour les discussions, mais ce dernier est soumis à authentification.
Je n'ai rien trouvé non plus à propos du nom « scope » dans n1625 (le premier papier de Tom qui discutait de la proposition de BS).
J'ai sans doute loupé quelque chose, mais je ne vois toujours pas le problème avec le nom « scope ».
| PS: Cela fait maintenant +/- une semaine que j'ai des difficultés | avec le site du WG21. En une heure, je n'arrive même pas à rappatrier | complètement la page référençant les papiers de 2004. D'autres | ont-ils le même problème ? Y a-t-il un mirroir utilisable (j'ai | essayé open-std et dkuug) ?
J'ai entendu dire que certains avaient des problèmes à rapatrier ces papiers -- car l'hébergeant actuel aurait mis certaines limites relativement basses aux débits. D'après ce que j'ai compris cela devrait être temporaire...
Le lien qu'a donné Loïc semble fonctionner (merci).
--drkm
Gabriel Dos Reis <gdr@integrable-solutions.net> writes:
drkm <usenet.fclcxx@fgeorges.org> writes:
| Gabriel Dos Reis <gdr@integrable-solutions.net> writes:
| > (La prochaine version de cette proposition n'utilisera probablement
| > pas « scope », puisque cela crée certaines confusions. Moi, j'aime
| > bien « #nospam » -- comme on peut le voir dans la liste de EWG -- mais
| > cela semble politiquement pour certains).
| Étrange. Je trouve que « scope » est très bien.
Alors c'est que « scope » crée vraiment de la confusion :-)
| De quelles
| confusions parles-tu ? Avec la définition de scope du C++ ?
Regarde la contre-proposotion de Tom Plum dans les pre- et/ou
post-mainling de Redmond.
Il y a n1726 et n1740 dans le mailing post-Redmond. Il n'y emploit
en effet plus « scope », sans toutefois proposer encore de nouveau
nom :
2. The syntax and "begin-end" matching of the "new region" marker
remains the most contentious issue; see below. For purposes of
discussion, let's use an obviously-invalid place-holder :
xxx-begin-macro-region
...
xxx-end-macro-region
Il renseigne également l'adresse du wiki utilisé pour les discussions,
mais ce dernier est soumis à authentification.
Je n'ai rien trouvé non plus à propos du nom « scope » dans n1625
(le premier papier de Tom qui discutait de la proposition de BS).
J'ai sans doute loupé quelque chose, mais je ne vois toujours pas le
problème avec le nom « scope ».
| PS: Cela fait maintenant +/- une semaine que j'ai des difficultés
| avec le site du WG21. En une heure, je n'arrive même pas à rappatrier
| complètement la page référençant les papiers de 2004. D'autres
| ont-ils le même problème ? Y a-t-il un mirroir utilisable (j'ai
| essayé open-std et dkuug) ?
J'ai entendu dire que certains avaient des problèmes à rapatrier ces
papiers -- car l'hébergeant actuel aurait mis certaines limites
relativement basses aux débits. D'après ce que j'ai compris cela
devrait être temporaire...
Le lien qu'a donné Loïc semble fonctionner (merci).
| > (La prochaine version de cette proposition n'utilisera probablement | > pas « scope », puisque cela crée certaines confusions. Moi, j'aime | > bien « #nospam » -- comme on peut le voir dans la liste de EWG -- mais | > cela semble politiquement pour certains).
| Étrange. Je trouve que « scope » est très bien.
Alors c'est que « scope » crée vraiment de la confusion :-)
| De quelles | confusions parles-tu ? Avec la définition de scope du C++ ?
Regarde la contre-proposotion de Tom Plum dans les pre- et/ou post-mainling de Redmond.
Il y a n1726 et n1740 dans le mailing post-Redmond. Il n'y emploit en effet plus « scope », sans toutefois proposer encore de nouveau nom :
2. The syntax and "begin-end" matching of the "new region" marker remains the most contentious issue; see below. For purposes of discussion, let's use an obviously-invalid place-holder :
xxx-begin-macro-region ... xxx-end-macro-region
Il renseigne également l'adresse du wiki utilisé pour les discussions, mais ce dernier est soumis à authentification.
Je n'ai rien trouvé non plus à propos du nom « scope » dans n1625 (le premier papier de Tom qui discutait de la proposition de BS).
J'ai sans doute loupé quelque chose, mais je ne vois toujours pas le problème avec le nom « scope ».
| PS: Cela fait maintenant +/- une semaine que j'ai des difficultés | avec le site du WG21. En une heure, je n'arrive même pas à rappatrier | complètement la page référençant les papiers de 2004. D'autres | ont-ils le même problème ? Y a-t-il un mirroir utilisable (j'ai | essayé open-std et dkuug) ?
J'ai entendu dire que certains avaient des problèmes à rapatrier ces papiers -- car l'hébergeant actuel aurait mis certaines limites relativement basses aux débits. D'après ce que j'ai compris cela devrait être temporaire...
Le lien qu'a donné Loïc semble fonctionner (merci).
--drkm
drkm
Laurent Deniau writes:
drkm wrote:
Laurent Deniau writes:
compound expressions
Qu'est-ce ?
Dans le context pre-cite je faisais reference aux extensions gcc des compound expression en coumpound statement qui peuvent inclure des declarations.
Ok. Lorsque j'ai vu que tu les qualifiais de non-standards, je ne comprenais pas de quoi du parlais.
À quoi te sert le fait de déclarer des variables intermédiaires ? Éviter les effets de bord dus à l'évaluation multiple des arguments ? Et l'extension de GCC à permettre l'utilisation de max() en tant qu'expression ? Ok, je pense mieux comprendre ...
En C++, l'utilisation d'un modèle de fonction permetterait la même chose, il me semble.
--drkm
Laurent Deniau <Laurent.Deniau@cern.ch> writes:
drkm wrote:
Laurent Deniau <Laurent.Deniau@cern.ch> writes:
compound
expressions
Qu'est-ce ?
Dans le context pre-cite je faisais reference aux extensions gcc des
compound expression en coumpound statement qui peuvent inclure des
declarations.
Ok. Lorsque j'ai vu que tu les qualifiais de non-standards, je ne
comprenais pas de quoi du parlais.
À quoi te sert le fait de déclarer des variables intermédiaires ?
Éviter les effets de bord dus à l'évaluation multiple des arguments ?
Et l'extension de GCC à permettre l'utilisation de max() en tant
qu'expression ? Ok, je pense mieux comprendre ...
En C++, l'utilisation d'un modèle de fonction permetterait la même
chose, il me semble.
À quoi te sert le fait de déclarer des variables intermédiaires ? Éviter les effets de bord dus à l'évaluation multiple des arguments ? Et l'extension de GCC à permettre l'utilisation de max() en tant qu'expression ? Ok, je pense mieux comprendre ...
En C++, l'utilisation d'un modèle de fonction permetterait la même chose, il me semble.
--drkm
Gabriel Dos Reis
Laurent Deniau writes:
| > En C++, l'utilisation d'un modèle de fonction permetterait la même | > chose, il me semble. | | c'est ce que je disais: fonction inline + template font la meme chose | en mieux, donc peut d'interet en C++. Par contre je ne sais pas | pourquoi C99 n'a pas retenu ces options, parce que ca serait bien | utile...
Probablement, parce que c'est C++.
(J'ai entendu une rumeur comme quoi quelqu'un aurait fait une suggestion pour C99 de template « minimal », mais il aurait été renvoyé dans les cordes)
-- Gaby
Laurent Deniau <Laurent.Deniau@cern.ch> writes:
| > En C++, l'utilisation d'un modèle de fonction permetterait la même
| > chose, il me semble.
|
| c'est ce que je disais: fonction inline + template font la meme chose
| en mieux, donc peut d'interet en C++. Par contre je ne sais pas
| pourquoi C99 n'a pas retenu ces options, parce que ca serait bien
| utile...
Probablement, parce que c'est C++.
(J'ai entendu une rumeur comme quoi quelqu'un aurait fait une
suggestion pour C99 de template « minimal », mais il aurait été
renvoyé dans les cordes)
| > En C++, l'utilisation d'un modèle de fonction permetterait la même | > chose, il me semble. | | c'est ce que je disais: fonction inline + template font la meme chose | en mieux, donc peut d'interet en C++. Par contre je ne sais pas | pourquoi C99 n'a pas retenu ces options, parce que ca serait bien | utile...
Probablement, parce que c'est C++.
(J'ai entendu une rumeur comme quoi quelqu'un aurait fait une suggestion pour C99 de template « minimal », mais il aurait été renvoyé dans les cordes)
-- Gaby
Laurent Deniau
Gabriel Dos Reis wrote:
Laurent Deniau writes:
| > En C++, l'utilisation d'un modèle de fonction permetterait la même | > chose, il me semble. | | c'est ce que je disais: fonction inline + template font la meme chose | en mieux, donc peut d'interet en C++. Par contre je ne sais pas | pourquoi C99 n'a pas retenu ces options, parce que ca serait bien | utile...
Probablement, parce que c'est C++.
(J'ai entendu une rumeur comme quoi quelqu'un aurait fait une suggestion pour C99 de template « minimal », mais il aurait été renvoyé dans les cordes)
C est vraiment la suite de B ou c'est pour 'C'onservateur ;-)
Encore un coup des faux cons ;-)
a+, ld.
Gabriel Dos Reis wrote:
Laurent Deniau <Laurent.Deniau@cern.ch> writes:
| > En C++, l'utilisation d'un modèle de fonction permetterait la même
| > chose, il me semble.
|
| c'est ce que je disais: fonction inline + template font la meme chose
| en mieux, donc peut d'interet en C++. Par contre je ne sais pas
| pourquoi C99 n'a pas retenu ces options, parce que ca serait bien
| utile...
Probablement, parce que c'est C++.
(J'ai entendu une rumeur comme quoi quelqu'un aurait fait une
suggestion pour C99 de template « minimal », mais il aurait été
renvoyé dans les cordes)
C est vraiment la suite de B ou c'est pour 'C'onservateur ;-)
| > En C++, l'utilisation d'un modèle de fonction permetterait la même | > chose, il me semble. | | c'est ce que je disais: fonction inline + template font la meme chose | en mieux, donc peut d'interet en C++. Par contre je ne sais pas | pourquoi C99 n'a pas retenu ces options, parce que ca serait bien | utile...
Probablement, parce que c'est C++.
(J'ai entendu une rumeur comme quoi quelqu'un aurait fait une suggestion pour C99 de template « minimal », mais il aurait été renvoyé dans les cordes)
C est vraiment la suite de B ou c'est pour 'C'onservateur ;-)