Je voudrais répondre à James, mais comme son article n'est pas
relayé par mon FAI, je réponds à Gaby à la place. Sorry.
Gabriel Dos Reis wrote:writes:
[...]
| Quel rapport ? C'est de toute façon impossible à implémenter la
| bibliothèque standard sans utiliser des constructions non standard.
Ce n'est pas ce que je voulais dire.
Prenons un exemple:
for (int i=0 ; i<10 ; ++i) action();
for (int i=0 ; i<10 ; ++i) action();
Bien que ce code soit correct, il ne compilera pas avec VC++ (en tout
cas pas avec ma version): la deuxième ligne provoquera une erreur en
raison de la soi-disant redéclaration de i.
Pour VC++ il faut écrire:
for (int i=0 ; i<10 ; ++i) action();
for ( i=0 ; i<10 ; ++i) action();
Mais ce code-ci ne compilera pas avec un compilateur plus respectueux
du standard.
Si la bibliothèque Dinkum utilise la deuxième construction, elle est
inutilisable avec d'autres compilateurs que Visual. Du moins c'est ce
que j'ai entendu dire. D'où ma question.
Je voudrais répondre à James, mais comme son article n'est pas
relayé par mon FAI, je réponds à Gaby à la place. Sorry.
Gabriel Dos Reis <gdr@cs.tamu.edu> wrote:
kanze@gabi-soft.fr writes:
[...]
| Quel rapport ? C'est de toute façon impossible à implémenter la
| bibliothèque standard sans utiliser des constructions non standard.
Ce n'est pas ce que je voulais dire.
Prenons un exemple:
for (int i=0 ; i<10 ; ++i) action();
for (int i=0 ; i<10 ; ++i) action();
Bien que ce code soit correct, il ne compilera pas avec VC++ (en tout
cas pas avec ma version): la deuxième ligne provoquera une erreur en
raison de la soi-disant redéclaration de i.
Pour VC++ il faut écrire:
for (int i=0 ; i<10 ; ++i) action();
for ( i=0 ; i<10 ; ++i) action();
Mais ce code-ci ne compilera pas avec un compilateur plus respectueux
du standard.
Si la bibliothèque Dinkum utilise la deuxième construction, elle est
inutilisable avec d'autres compilateurs que Visual. Du moins c'est ce
que j'ai entendu dire. D'où ma question.
Je voudrais répondre à James, mais comme son article n'est pas
relayé par mon FAI, je réponds à Gaby à la place. Sorry.
Gabriel Dos Reis wrote:writes:
[...]
| Quel rapport ? C'est de toute façon impossible à implémenter la
| bibliothèque standard sans utiliser des constructions non standard.
Ce n'est pas ce que je voulais dire.
Prenons un exemple:
for (int i=0 ; i<10 ; ++i) action();
for (int i=0 ; i<10 ; ++i) action();
Bien que ce code soit correct, il ne compilera pas avec VC++ (en tout
cas pas avec ma version): la deuxième ligne provoquera une erreur en
raison de la soi-disant redéclaration de i.
Pour VC++ il faut écrire:
for (int i=0 ; i<10 ; ++i) action();
for ( i=0 ; i<10 ; ++i) action();
Mais ce code-ci ne compilera pas avec un compilateur plus respectueux
du standard.
Si la bibliothèque Dinkum utilise la deuxième construction, elle est
inutilisable avec d'autres compilateurs que Visual. Du moins c'est ce
que j'ai entendu dire. D'où ma question.
L'implémentation d'une
bibliothèque standard contiendra forcément du code qui dépend de
l'implémentation. Si tu régardes dans l'implémentation de la
bibliothèque de g++, par exemple, je suis sûr que tu trouveras du code
qui est différent pour Windows que pour Unix. (Pense, par exemple, à la
gestion de mode binary dans filebuf.)
Prenons un exemple:
for (int i=0 ; i<10 ; ++i) action();
for (int i=0 ; i<10 ; ++i) action();
Bien que ce code soit correct, il ne compilera pas avec VC++ (en tout
cas pas avec ma version): la deuxième ligne provoquera une erreur en
raison de la soi-disant redéclaration de i.
Et alors ? Jusqu'ici, je n'ai jamais eu un problème avec ceci.
Je ne sais pas pourquoi tout le monde en parle autant. Si c'était le
plus grand problème de VC++, ça serait formidable.
L'implémentation d'une
bibliothèque standard contiendra forcément du code qui dépend de
l'implémentation. Si tu régardes dans l'implémentation de la
bibliothèque de g++, par exemple, je suis sûr que tu trouveras du code
qui est différent pour Windows que pour Unix. (Pense, par exemple, à la
gestion de mode binary dans filebuf.)
Prenons un exemple:
for (int i=0 ; i<10 ; ++i) action();
for (int i=0 ; i<10 ; ++i) action();
Bien que ce code soit correct, il ne compilera pas avec VC++ (en tout
cas pas avec ma version): la deuxième ligne provoquera une erreur en
raison de la soi-disant redéclaration de i.
Et alors ? Jusqu'ici, je n'ai jamais eu un problème avec ceci.
Je ne sais pas pourquoi tout le monde en parle autant. Si c'était le
plus grand problème de VC++, ça serait formidable.
L'implémentation d'une
bibliothèque standard contiendra forcément du code qui dépend de
l'implémentation. Si tu régardes dans l'implémentation de la
bibliothèque de g++, par exemple, je suis sûr que tu trouveras du code
qui est différent pour Windows que pour Unix. (Pense, par exemple, à la
gestion de mode binary dans filebuf.)
Prenons un exemple:
for (int i=0 ; i<10 ; ++i) action();
for (int i=0 ; i<10 ; ++i) action();
Bien que ce code soit correct, il ne compilera pas avec VC++ (en tout
cas pas avec ma version): la deuxième ligne provoquera une erreur en
raison de la soi-disant redéclaration de i.
Et alors ? Jusqu'ici, je n'ai jamais eu un problème avec ceci.
Je ne sais pas pourquoi tout le monde en parle autant. Si c'était le
plus grand problème de VC++, ça serait formidable.
On 6 Jul 2004 03:04:40 -0700, wrote:L'implémentation d'une bibliothèque standard contiendra forcément du
code qui dépend de l'implémentation. Si tu régardes dans
l'implémentation de la bibliothèque de g++, par exemple, je suis sûr
que tu trouveras du code qui est différent pour Windows que pour
Unix. (Pense, par exemple, à la gestion de mode binary dans filebuf.)
Naïvement, je me disais qu'une implémentation de la bibliothèque
standard pouvait être portable et "correcte". Auquel cas elle aurait
dû pouvoir fonctionner avec n'importe quel compilateur "suffisamment
correct".
D'après ta réponse, je comprends que ce n'est pas le cas.
On 6 Jul 2004 03:04:40 -0700, kanze@gabi-soft.fr wrote:
L'implémentation d'une bibliothèque standard contiendra forcément du
code qui dépend de l'implémentation. Si tu régardes dans
l'implémentation de la bibliothèque de g++, par exemple, je suis sûr
que tu trouveras du code qui est différent pour Windows que pour
Unix. (Pense, par exemple, à la gestion de mode binary dans filebuf.)
Naïvement, je me disais qu'une implémentation de la bibliothèque
standard pouvait être portable et "correcte". Auquel cas elle aurait
dû pouvoir fonctionner avec n'importe quel compilateur "suffisamment
correct".
D'après ta réponse, je comprends que ce n'est pas le cas.
On 6 Jul 2004 03:04:40 -0700, wrote:L'implémentation d'une bibliothèque standard contiendra forcément du
code qui dépend de l'implémentation. Si tu régardes dans
l'implémentation de la bibliothèque de g++, par exemple, je suis sûr
que tu trouveras du code qui est différent pour Windows que pour
Unix. (Pense, par exemple, à la gestion de mode binary dans filebuf.)
Naïvement, je me disais qu'une implémentation de la bibliothèque
standard pouvait être portable et "correcte". Auquel cas elle aurait
dû pouvoir fonctionner avec n'importe quel compilateur "suffisamment
correct".
D'après ta réponse, je comprends que ce n'est pas le cas.
writes:
| Andre Heinen wrote in message
| news:...
| > Je voudrais répondre à James, mais comme son article n'est pas
| > relayé par mon FAI, je réponds à Gaby à la place. Sorry.
| > Gabriel Dos Reis wrote:
| > > writes:
| > >[...]
| > >| Quel rapport ? C'est de toute façon impossible à implémenter la
| > >| bibliothèque standard sans utiliser des constructions non
| > >| standard.
| > Ce n'est pas ce que je voulais dire.
| Je sais. C'est ce que moi, j'ai voulu dire. L'implémentation d'une
| bibliothèque standard contiendra forcément du code qui dépend de
| l'implémentation.
Mais ce ne sont pas tous les composants qui contiennent du code
non-standard ou sont obligés d'inclure du code non-standard. vector<T>
n'est pas obligé d'être écrit en C++ non-standard.
Je trouve l'argument fallacieux. Un composant peut se trouver dans la
bibliothèque standard non pas parce qu'il requiert du code
non-standard. Mais simplement parce que c'est pratique et ce serait
bien si tout le monde utilisait la même chose. Les containers, les
algorithmes, les itérateurs ne requierent pas du code non-standard.
Les classes d'hiérarchie d'exception non plus.
kanze@gabi-soft.fr writes:
| Andre Heinen <nospam@nospam.invalid> wrote in message
| news:<drtie0ttn0ihd1a3af9te21rarmg4f3ckk@4ax.com>...
| > Je voudrais répondre à James, mais comme son article n'est pas
| > relayé par mon FAI, je réponds à Gaby à la place. Sorry.
| > Gabriel Dos Reis <gdr@cs.tamu.edu> wrote:
| > >kanze@gabi-soft.fr writes:
| > >[...]
| > >| Quel rapport ? C'est de toute façon impossible à implémenter la
| > >| bibliothèque standard sans utiliser des constructions non
| > >| standard.
| > Ce n'est pas ce que je voulais dire.
| Je sais. C'est ce que moi, j'ai voulu dire. L'implémentation d'une
| bibliothèque standard contiendra forcément du code qui dépend de
| l'implémentation.
Mais ce ne sont pas tous les composants qui contiennent du code
non-standard ou sont obligés d'inclure du code non-standard. vector<T>
n'est pas obligé d'être écrit en C++ non-standard.
Je trouve l'argument fallacieux. Un composant peut se trouver dans la
bibliothèque standard non pas parce qu'il requiert du code
non-standard. Mais simplement parce que c'est pratique et ce serait
bien si tout le monde utilisait la même chose. Les containers, les
algorithmes, les itérateurs ne requierent pas du code non-standard.
Les classes d'hiérarchie d'exception non plus.
writes:
| Andre Heinen wrote in message
| news:...
| > Je voudrais répondre à James, mais comme son article n'est pas
| > relayé par mon FAI, je réponds à Gaby à la place. Sorry.
| > Gabriel Dos Reis wrote:
| > > writes:
| > >[...]
| > >| Quel rapport ? C'est de toute façon impossible à implémenter la
| > >| bibliothèque standard sans utiliser des constructions non
| > >| standard.
| > Ce n'est pas ce que je voulais dire.
| Je sais. C'est ce que moi, j'ai voulu dire. L'implémentation d'une
| bibliothèque standard contiendra forcément du code qui dépend de
| l'implémentation.
Mais ce ne sont pas tous les composants qui contiennent du code
non-standard ou sont obligés d'inclure du code non-standard. vector<T>
n'est pas obligé d'être écrit en C++ non-standard.
Je trouve l'argument fallacieux. Un composant peut se trouver dans la
bibliothèque standard non pas parce qu'il requiert du code
non-standard. Mais simplement parce que c'est pratique et ce serait
bien si tout le monde utilisait la même chose. Les containers, les
algorithmes, les itérateurs ne requierent pas du code non-standard.
Les classes d'hiérarchie d'exception non plus.