Quelle utilisation "pratique" peut-on avoir de l'operateur , ???
Quelle utilisation "pratique" peut-on avoir de l'operateur , ???
Quelle utilisation "pratique" peut-on avoir de l'operateur , ???
Jean-Marc Bourguet wrote in
news::int* nb=new int[999,999,999,999,999];
Alloue un tableau de 999 entiers: , est l'operateur , qui evalue les
expressions en sequence donc les 4 premiers 999 sont en pratique ignores.
C'est la meme chose que
int* nb = new int[999];
Quelle utilisation "pratique" peut-on avoir de l'operateur , ???
La lisibilité des C++-ismes (ou C-ismes) comme i++, i >>= 2, opérateur
Jean-Marc Bourguet <jm@bourguet.org> wrote in
news:pxbekdpb9nq.fsf@news.bourguet.org:
int* nb=new int[999,999,999,999,999];
Alloue un tableau de 999 entiers: , est l'operateur , qui evalue les
expressions en sequence donc les 4 premiers 999 sont en pratique ignores.
C'est la meme chose que
int* nb = new int[999];
Quelle utilisation "pratique" peut-on avoir de l'operateur , ???
La lisibilité des C++-ismes (ou C-ismes) comme i++, i >>= 2, opérateur
Jean-Marc Bourguet wrote in
news::int* nb=new int[999,999,999,999,999];
Alloue un tableau de 999 entiers: , est l'operateur , qui evalue les
expressions en sequence donc les 4 premiers 999 sont en pratique ignores.
C'est la meme chose que
int* nb = new int[999];
Quelle utilisation "pratique" peut-on avoir de l'operateur , ???
La lisibilité des C++-ismes (ou C-ismes) comme i++, i >>= 2, opérateur
Quelle utilisation "pratique" peut-on avoir de l'operateur , ???
La lisibilité des C++-ismes (ou C-ismes) comme i++, i >>= 2, opér ateur
virgule et quelques autres est souvent affaire personnelle. Ça tombe
bien, ils sont en général d'utilisation facultative.
Comme Vincent, je trouve l'opérateur virgule pratique dans les boucle s
for(;;), si on est raisonnable. C'est à dire si on ne joue pas à me ttre
tout ce qu'on peut dans la définition de la boucle.
Je crois que l'opérateur virgule a la particularité de garantir un ordre
d'exécution des "instructions", ce qui n'est pas le cas si elles sont
séparées par des ;. Je n'ai jamais utilisé cette particularité.
Quelle utilisation "pratique" peut-on avoir de l'operateur , ???
La lisibilité des C++-ismes (ou C-ismes) comme i++, i >>= 2, opér ateur
virgule et quelques autres est souvent affaire personnelle. Ça tombe
bien, ils sont en général d'utilisation facultative.
Comme Vincent, je trouve l'opérateur virgule pratique dans les boucle s
for(;;), si on est raisonnable. C'est à dire si on ne joue pas à me ttre
tout ce qu'on peut dans la définition de la boucle.
Je crois que l'opérateur virgule a la particularité de garantir un ordre
d'exécution des "instructions", ce qui n'est pas le cas si elles sont
séparées par des ;. Je n'ai jamais utilisé cette particularité.
Quelle utilisation "pratique" peut-on avoir de l'operateur , ???
La lisibilité des C++-ismes (ou C-ismes) comme i++, i >>= 2, opér ateur
virgule et quelques autres est souvent affaire personnelle. Ça tombe
bien, ils sont en général d'utilisation facultative.
Comme Vincent, je trouve l'opérateur virgule pratique dans les boucle s
for(;;), si on est raisonnable. C'est à dire si on ne joue pas à me ttre
tout ce qu'on peut dans la définition de la boucle.
Je crois que l'opérateur virgule a la particularité de garantir un ordre
d'exécution des "instructions", ce qui n'est pas le cas si elles sont
séparées par des ;. Je n'ai jamais utilisé cette particularité.
Jean-Marc Bourguet wrote in
news::
int* nb=new int[999,999,999,999,999];
Alloue un tableau de 999 entiers: , est l'operateur , qui
evalue les expressions en sequence donc les 4 premiers 999
sont en pratique ignores. C'est la meme chose que
int* nb = new int[999];
Quelle utilisation "pratique" peut-on avoir de l'operateur , ???
Jean-Marc Bourguet <jm@bourguet.org> wrote in
news:pxbekdpb9nq.fsf@news.bourguet.org:
int* nb=new int[999,999,999,999,999];
Alloue un tableau de 999 entiers: , est l'operateur , qui
evalue les expressions en sequence donc les 4 premiers 999
sont en pratique ignores. C'est la meme chose que
int* nb = new int[999];
Quelle utilisation "pratique" peut-on avoir de l'operateur , ???
Jean-Marc Bourguet wrote in
news::
int* nb=new int[999,999,999,999,999];
Alloue un tableau de 999 entiers: , est l'operateur , qui
evalue les expressions en sequence donc les 4 premiers 999
sont en pratique ignores. C'est la meme chose que
int* nb = new int[999];
Quelle utilisation "pratique" peut-on avoir de l'operateur , ???
Un autre exemple relativement réaliste :
int a, b;
while(a = readA(), b = readB(), a > X || b < Y)
supercalifraguiextraallegoriquefrobenicate(a, b);
On note que la tentative suivante de se passer de l'opérateur
virgule :
int a, b;
while((a = readA()) > X || (b = readB()) < Y)
supercalifraguiextraallegoriquefrobenicate(a, b);
ne marche pas. Au fait il faudrait dupliquer du code (ce qui est
Mal !) :
int a = readA();
int b = readB();
while(a > X || b < Y)
{
supercalifraguiextraallegoriquefrobenicate(a, b);
a = readA();
b = readB();
}
en priant pour que personne ne rajoutera derrière un "continue"
quelque part dans la boucle sans s'apercevoir qu'il faut
réinitialiser "a" et "b".
Un autre exemple relativement réaliste :
int a, b;
while(a = readA(), b = readB(), a > X || b < Y)
supercalifraguiextraallegoriquefrobenicate(a, b);
On note que la tentative suivante de se passer de l'opérateur
virgule :
int a, b;
while((a = readA()) > X || (b = readB()) < Y)
supercalifraguiextraallegoriquefrobenicate(a, b);
ne marche pas. Au fait il faudrait dupliquer du code (ce qui est
Mal !) :
int a = readA();
int b = readB();
while(a > X || b < Y)
{
supercalifraguiextraallegoriquefrobenicate(a, b);
a = readA();
b = readB();
}
en priant pour que personne ne rajoutera derrière un "continue"
quelque part dans la boucle sans s'apercevoir qu'il faut
réinitialiser "a" et "b".
Un autre exemple relativement réaliste :
int a, b;
while(a = readA(), b = readB(), a > X || b < Y)
supercalifraguiextraallegoriquefrobenicate(a, b);
On note que la tentative suivante de se passer de l'opérateur
virgule :
int a, b;
while((a = readA()) > X || (b = readB()) < Y)
supercalifraguiextraallegoriquefrobenicate(a, b);
ne marche pas. Au fait il faudrait dupliquer du code (ce qui est
Mal !) :
int a = readA();
int b = readB();
while(a > X || b < Y)
{
supercalifraguiextraallegoriquefrobenicate(a, b);
a = readA();
b = readB();
}
en priant pour que personne ne rajoutera derrière un "continue"
quelque part dans la boucle sans s'apercevoir qu'il faut
réinitialiser "a" et "b".
Un autre exemple relativement réaliste :
int a, b;
while(a = readA(), b = readB(), a > X || b < Y)
supercalifraguiextraallegoriquefrobenicate(a, b);
On note que la tentative suivante de se passer de l'opérateur virgule :
int a, b;
while((a = readA()) > X || (b = readB()) < Y)
supercalifraguiextraallegoriquefrobenicate(a, b);
ne marche pas. Au fait il faudrait dupliquer du code (ce qui est Mal !) :
int a = readA();
int b = readB();
while(a > X || b < Y)
{
supercalifraguiextraallegoriquefrobenicate(a, b);
a = readA();
b = readB();
}
en priant pour que personne ne rajoutera derrière un "continue" quelque
part dans la boucle sans s'apercevoir qu'il faut réinitialiser "a" et "b".
Bel exemple, bon exercice...
Par ailleurs, les puristes détestent souvent aussi "continue".
Un bon goto, hein, y'a pas mieux ...
Un autre exemple relativement réaliste :
int a, b;
while(a = readA(), b = readB(), a > X || b < Y)
supercalifraguiextraallegoriquefrobenicate(a, b);
On note que la tentative suivante de se passer de l'opérateur virgule :
int a, b;
while((a = readA()) > X || (b = readB()) < Y)
supercalifraguiextraallegoriquefrobenicate(a, b);
ne marche pas. Au fait il faudrait dupliquer du code (ce qui est Mal !) :
int a = readA();
int b = readB();
while(a > X || b < Y)
{
supercalifraguiextraallegoriquefrobenicate(a, b);
a = readA();
b = readB();
}
en priant pour que personne ne rajoutera derrière un "continue" quelque
part dans la boucle sans s'apercevoir qu'il faut réinitialiser "a" et "b".
Bel exemple, bon exercice...
Par ailleurs, les puristes détestent souvent aussi "continue".
Un bon goto, hein, y'a pas mieux ...
Un autre exemple relativement réaliste :
int a, b;
while(a = readA(), b = readB(), a > X || b < Y)
supercalifraguiextraallegoriquefrobenicate(a, b);
On note que la tentative suivante de se passer de l'opérateur virgule :
int a, b;
while((a = readA()) > X || (b = readB()) < Y)
supercalifraguiextraallegoriquefrobenicate(a, b);
ne marche pas. Au fait il faudrait dupliquer du code (ce qui est Mal !) :
int a = readA();
int b = readB();
while(a > X || b < Y)
{
supercalifraguiextraallegoriquefrobenicate(a, b);
a = readA();
b = readB();
}
en priant pour que personne ne rajoutera derrière un "continue" quelque
part dans la boucle sans s'apercevoir qu'il faut réinitialiser "a" et "b".
Bel exemple, bon exercice...
Par ailleurs, les puristes détestent souvent aussi "continue".
Un bon goto, hein, y'a pas mieux ...
Mais l'emploi de la virgule (comme le premier code) est ici, à mon
humble avis, la pire des solutions possibles...
Ça vous dirait que nous passions des vacances ensemble ?
Mais l'emploi de la virgule (comme le premier code) est ici, à mon
humble avis, la pire des solutions possibles...
Ça vous dirait que nous passions des vacances ensemble ?
Mais l'emploi de la virgule (comme le premier code) est ici, à mon
humble avis, la pire des solutions possibles...
Ça vous dirait que nous passions des vacances ensemble ?
James Kanze writes:
| Michael wrote:
| > Quelle utilisation "pratique" peut-on avoir de l'operateur , ???
| L'obfuscation.
Ou non.
James Kanze <kanze@none> writes:
| Michael wrote:
| > Quelle utilisation "pratique" peut-on avoir de l'operateur , ???
| L'obfuscation.
Ou non.
James Kanze writes:
| Michael wrote:
| > Quelle utilisation "pratique" peut-on avoir de l'operateur , ???
| L'obfuscation.
Ou non.
Dans le message 42544300$0$12183$,Michel Michaud wrote:
Mais en fin de compte, je crois que tout dépend du poids
qu'on donne aux différents critères, parce que le problème,
c'est qu'on ne peut pas les remplir tous.
Seulement parce que tu as un critère qui dit « pas de boucle
et et demie ». Alors évidemment, il n'y a pas de solution
puisque la logique c'est celle d'un boucle et demie (comme l'a
expliqué Knuth bien avant moi).
[...]-- Ce qui contrôle la boucle doit se trouver à des endroits
« standard ». C-à-d ou bien au début ou bien à la fin.
Ça me paraît tout à fait arbitraire. Le résultat d'une
mauvaise habitude :-) Tu ne dis pas pourquoi ni ce que ça
t'apporte, sauf de l'obfuscation...
[...]Encore : je crois que jusqu'aujourd'hui, personne n'a trouvé
de solution vraiment satisfaisant dans tous les cas pour le
problème de la boucle et démi.
Mais si, la solution est simplement d'écrire ce qu'on pense,
c'est-à-dire une boucle et demie.
Ce n'est pas dans tes règles de base ça, d'écrire exactement
ce que tu veux dire ? Pense à Ada qui contient une instruction
de boucle généralisée...
Dans le message 42544300$0$12183$626a14ce@news.free.fr,
Michel Michaud wrote:
Mais en fin de compte, je crois que tout dépend du poids
qu'on donne aux différents critères, parce que le problème,
c'est qu'on ne peut pas les remplir tous.
Seulement parce que tu as un critère qui dit « pas de boucle
et et demie ». Alors évidemment, il n'y a pas de solution
puisque la logique c'est celle d'un boucle et demie (comme l'a
expliqué Knuth bien avant moi).
[...]
-- Ce qui contrôle la boucle doit se trouver à des endroits
« standard ». C-à-d ou bien au début ou bien à la fin.
Ça me paraît tout à fait arbitraire. Le résultat d'une
mauvaise habitude :-) Tu ne dis pas pourquoi ni ce que ça
t'apporte, sauf de l'obfuscation...
[...]
Encore : je crois que jusqu'aujourd'hui, personne n'a trouvé
de solution vraiment satisfaisant dans tous les cas pour le
problème de la boucle et démi.
Mais si, la solution est simplement d'écrire ce qu'on pense,
c'est-à-dire une boucle et demie.
Ce n'est pas dans tes règles de base ça, d'écrire exactement
ce que tu veux dire ? Pense à Ada qui contient une instruction
de boucle généralisée...
Dans le message 42544300$0$12183$,Michel Michaud wrote:
Mais en fin de compte, je crois que tout dépend du poids
qu'on donne aux différents critères, parce que le problème,
c'est qu'on ne peut pas les remplir tous.
Seulement parce que tu as un critère qui dit « pas de boucle
et et demie ». Alors évidemment, il n'y a pas de solution
puisque la logique c'est celle d'un boucle et demie (comme l'a
expliqué Knuth bien avant moi).
[...]-- Ce qui contrôle la boucle doit se trouver à des endroits
« standard ». C-à-d ou bien au début ou bien à la fin.
Ça me paraît tout à fait arbitraire. Le résultat d'une
mauvaise habitude :-) Tu ne dis pas pourquoi ni ce que ça
t'apporte, sauf de l'obfuscation...
[...]Encore : je crois que jusqu'aujourd'hui, personne n'a trouvé
de solution vraiment satisfaisant dans tous les cas pour le
problème de la boucle et démi.
Mais si, la solution est simplement d'écrire ce qu'on pense,
c'est-à-dire une boucle et demie.
Ce n'est pas dans tes règles de base ça, d'écrire exactement
ce que tu veux dire ? Pense à Ada qui contient une instruction
de boucle généralisée...