James Kanze wrote on 09/04/2006 20:35:si l'error handler en question ne fait qu'écrire
l'information reçue dans un fichier (stream, console,
...), cela peut fonctionner.
mais, même dans ce cas, si le gestionnaire d'erreur va
jusqu'à arrêter l'application (selon la sévérité de
l'erreur) seul le premier argument sera enregistré.
Pas chez moi. Au moins, pas avec la forme avec des <<.
mais pas chez moi non plus mon brave monsieur!
non pas que je réserve l'instruction:
errorHdlr << "monTrucVachementPropreQuiSertAFlusher";
pour réaliser le traitement (vs la mise en tampon), mais juste
que c'est trop grotesque pour que je l'imagine.
si, pour un autre mode, la méthode affiche un dialogue
d'alerte, cela va être un peu moins efficace (une alerte
par argument!) (à moins de recompliquer arbitrairement le
gestionnaire avec des inputters muets et un flusher
bavard).
Encore une fois -- pas chez moi. Évidemment, dans mes
applications, il n'y a pas de dialogue d'alerte, parce que
normalement, il n'y a pas de terminal affecté au programme,
mais j'envoie bien des emails et d'autres choses semblables.
je n'en doute pas un instant! j'ai bien vu des codes se
connectant sur une base, locker N tables, écrire *un* octet,
delocker le bouzin, perdre la connection, ..., pour chaque
octet injecté; donc je ne m'étonnerai de rien.
en ce qui concerne la duplication du code -- les templates
sont là pour ça.
excellente celle-là !! merci ! je la note en tête des
histoires droles.
James Kanze wrote on 09/04/2006 20:35:
si l'error handler en question ne fait qu'écrire
l'information reçue dans un fichier (stream, console,
...), cela peut fonctionner.
mais, même dans ce cas, si le gestionnaire d'erreur va
jusqu'à arrêter l'application (selon la sévérité de
l'erreur) seul le premier argument sera enregistré.
Pas chez moi. Au moins, pas avec la forme avec des <<.
mais pas chez moi non plus mon brave monsieur!
non pas que je réserve l'instruction:
errorHdlr << "monTrucVachementPropreQuiSertAFlusher";
pour réaliser le traitement (vs la mise en tampon), mais juste
que c'est trop grotesque pour que je l'imagine.
si, pour un autre mode, la méthode affiche un dialogue
d'alerte, cela va être un peu moins efficace (une alerte
par argument!) (à moins de recompliquer arbitrairement le
gestionnaire avec des inputters muets et un flusher
bavard).
Encore une fois -- pas chez moi. Évidemment, dans mes
applications, il n'y a pas de dialogue d'alerte, parce que
normalement, il n'y a pas de terminal affecté au programme,
mais j'envoie bien des emails et d'autres choses semblables.
je n'en doute pas un instant! j'ai bien vu des codes se
connectant sur une base, locker N tables, écrire *un* octet,
delocker le bouzin, perdre la connection, ..., pour chaque
octet injecté; donc je ne m'étonnerai de rien.
en ce qui concerne la duplication du code -- les templates
sont là pour ça.
excellente celle-là !! merci ! je la note en tête des
histoires droles.
James Kanze wrote on 09/04/2006 20:35:si l'error handler en question ne fait qu'écrire
l'information reçue dans un fichier (stream, console,
...), cela peut fonctionner.
mais, même dans ce cas, si le gestionnaire d'erreur va
jusqu'à arrêter l'application (selon la sévérité de
l'erreur) seul le premier argument sera enregistré.
Pas chez moi. Au moins, pas avec la forme avec des <<.
mais pas chez moi non plus mon brave monsieur!
non pas que je réserve l'instruction:
errorHdlr << "monTrucVachementPropreQuiSertAFlusher";
pour réaliser le traitement (vs la mise en tampon), mais juste
que c'est trop grotesque pour que je l'imagine.
si, pour un autre mode, la méthode affiche un dialogue
d'alerte, cela va être un peu moins efficace (une alerte
par argument!) (à moins de recompliquer arbitrairement le
gestionnaire avec des inputters muets et un flusher
bavard).
Encore une fois -- pas chez moi. Évidemment, dans mes
applications, il n'y a pas de dialogue d'alerte, parce que
normalement, il n'y a pas de terminal affecté au programme,
mais j'envoie bien des emails et d'autres choses semblables.
je n'en doute pas un instant! j'ai bien vu des codes se
connectant sur une base, locker N tables, écrire *un* octet,
delocker le bouzin, perdre la connection, ..., pour chaque
octet injecté; donc je ne m'étonnerai de rien.
en ce qui concerne la duplication du code -- les templates
sont là pour ça.
excellente celle-là !! merci ! je la note en tête des
histoires droles.
mais, même dans ce cas, si le gestionnaire d'erreur va
jusqu'à arrêter l'application (selon la sévérité de
l'erreur) seul le premier argument sera enregistré.
Pas chez moi. Au moins, pas avec la forme avec des <<.
mais pas chez moi non plus mon brave monsieur!
Alors, qu'est-ce que tu essayais à dire quand tu disais que seul
le premier argument sera enregistré.
non pas que je réserve l'instruction:
errorHdlr << "monTrucVachementPropreQuiSertAFlusher";
pour réaliser le traitement (vs la mise en tampon), mais juste
que c'est trop grotesque pour que je l'imagine.
Mais je n'ai pas de truc (explicit, en tout cas) pour déclencher
le flush. J'exploite la durée de vie des temporaires, pour que
le tout soit transparent à l'utilisateur.
Pas chez moi. Au moins, pas avec la forme avec des <<.
je n'en doute pas un instant! j'ai bien vu des codes se
connectant sur une base, locker N tables, écrire *un* octet,
delocker le bouzin, perdre la connection, ..., pour chaque
octet injecté; donc je ne m'étonnerai de rien.
Si tu écris des choses comme ça, c'est ton problème. Ça laisse
trainer des doutes sur ta compréhension de la gestion des
threads, mais tu ne serais pas le premier à faire ce genre de
bêtise.
en ce qui concerne la duplication du code -- les templates
sont là pour ça.
excellente celle-là !! merci ! je la note en tête des
histoires droles.
Je ne comprends pas.
Je n'ai pas de duplication du code, parce que je me
suis servi des templates. C'est une technique connue
et approuvée par ceux qui connaissent le C++.
mais, même dans ce cas, si le gestionnaire d'erreur va
jusqu'à arrêter l'application (selon la sévérité de
l'erreur) seul le premier argument sera enregistré.
Pas chez moi. Au moins, pas avec la forme avec des <<.
mais pas chez moi non plus mon brave monsieur!
Alors, qu'est-ce que tu essayais à dire quand tu disais que seul
le premier argument sera enregistré.
non pas que je réserve l'instruction:
errorHdlr << "monTrucVachementPropreQuiSertAFlusher";
pour réaliser le traitement (vs la mise en tampon), mais juste
que c'est trop grotesque pour que je l'imagine.
Mais je n'ai pas de truc (explicit, en tout cas) pour déclencher
le flush. J'exploite la durée de vie des temporaires, pour que
le tout soit transparent à l'utilisateur.
Pas chez moi. Au moins, pas avec la forme avec des <<.
je n'en doute pas un instant! j'ai bien vu des codes se
connectant sur une base, locker N tables, écrire *un* octet,
delocker le bouzin, perdre la connection, ..., pour chaque
octet injecté; donc je ne m'étonnerai de rien.
Si tu écris des choses comme ça, c'est ton problème. Ça laisse
trainer des doutes sur ta compréhension de la gestion des
threads, mais tu ne serais pas le premier à faire ce genre de
bêtise.
en ce qui concerne la duplication du code -- les templates
sont là pour ça.
excellente celle-là !! merci ! je la note en tête des
histoires droles.
Je ne comprends pas.
Je n'ai pas de duplication du code, parce que je me
suis servi des templates. C'est une technique connue
et approuvée par ceux qui connaissent le C++.
mais, même dans ce cas, si le gestionnaire d'erreur va
jusqu'à arrêter l'application (selon la sévérité de
l'erreur) seul le premier argument sera enregistré.
Pas chez moi. Au moins, pas avec la forme avec des <<.
mais pas chez moi non plus mon brave monsieur!
Alors, qu'est-ce que tu essayais à dire quand tu disais que seul
le premier argument sera enregistré.
non pas que je réserve l'instruction:
errorHdlr << "monTrucVachementPropreQuiSertAFlusher";
pour réaliser le traitement (vs la mise en tampon), mais juste
que c'est trop grotesque pour que je l'imagine.
Mais je n'ai pas de truc (explicit, en tout cas) pour déclencher
le flush. J'exploite la durée de vie des temporaires, pour que
le tout soit transparent à l'utilisateur.
Pas chez moi. Au moins, pas avec la forme avec des <<.
je n'en doute pas un instant! j'ai bien vu des codes se
connectant sur une base, locker N tables, écrire *un* octet,
delocker le bouzin, perdre la connection, ..., pour chaque
octet injecté; donc je ne m'étonnerai de rien.
Si tu écris des choses comme ça, c'est ton problème. Ça laisse
trainer des doutes sur ta compréhension de la gestion des
threads, mais tu ne serais pas le premier à faire ce genre de
bêtise.
en ce qui concerne la duplication du code -- les templates
sont là pour ça.
excellente celle-là !! merci ! je la note en tête des
histoires droles.
Je ne comprends pas.
Je n'ai pas de duplication du code, parce que je me
suis servi des templates. C'est une technique connue
et approuvée par ceux qui connaissent le C++.
Je n'ai pas de duplication du code, parce que je me
suis servi des templates. C'est une technique connue
et approuvée par ceux qui connaissent le C++.
non, ceux qui connaissent le C++ savent que "déclarer" et "instancier"
une classe template "duplique" le code template en code concrêt; le
binaire ne contient (évidemment) pas la classe de définition mais autant
de code (dupliqué au type classe paramètre) que de classes générées.
cela t'aurait échapper ?
Je n'ai pas de duplication du code, parce que je me
suis servi des templates. C'est une technique connue
et approuvée par ceux qui connaissent le C++.
non, ceux qui connaissent le C++ savent que "déclarer" et "instancier"
une classe template "duplique" le code template en code concrêt; le
binaire ne contient (évidemment) pas la classe de définition mais autant
de code (dupliqué au type classe paramètre) que de classes générées.
cela t'aurait échapper ?
Je n'ai pas de duplication du code, parce que je me
suis servi des templates. C'est une technique connue
et approuvée par ceux qui connaissent le C++.
non, ceux qui connaissent le C++ savent que "déclarer" et "instancier"
une classe template "duplique" le code template en code concrêt; le
binaire ne contient (évidemment) pas la classe de définition mais autant
de code (dupliqué au type classe paramètre) que de classes générées.
cela t'aurait échapper ?
Dites, ça vous dirait pas de vous calmer un peu. Parce que dire
n'importe quoi en agressant les autres et en prenant tout le monde pour
des imbéciles, ce n'est pas bien passionnant. Chercher absolument la
manière d'interprèter ce que dit l'autre de manière à que ce puisse être
faux au lieu de chercher à comprendre ce qu'il dit, c'est aussi très
pénible.
En l'occurrence, l'intérêt d'éviter la duplication de code, c'est
essentiellement pour la maintenance. Un code dupliqué (au niveau des
sources) pose des problèmes de maintenance si une erreur est corrigé
dans une des parties dupliquées et pas dans une autre.
Les templates permettent d'éviter la duplication de code... source.
J'imagine que c'est ce dont parlait James.
En revanche, je ne saisis pas le problème d'avoir du code binaire
dupliqué ? C'est par soucis de la taille de l'exécutable ?
Dites, ça vous dirait pas de vous calmer un peu. Parce que dire
n'importe quoi en agressant les autres et en prenant tout le monde pour
des imbéciles, ce n'est pas bien passionnant. Chercher absolument la
manière d'interprèter ce que dit l'autre de manière à que ce puisse être
faux au lieu de chercher à comprendre ce qu'il dit, c'est aussi très
pénible.
En l'occurrence, l'intérêt d'éviter la duplication de code, c'est
essentiellement pour la maintenance. Un code dupliqué (au niveau des
sources) pose des problèmes de maintenance si une erreur est corrigé
dans une des parties dupliquées et pas dans une autre.
Les templates permettent d'éviter la duplication de code... source.
J'imagine que c'est ce dont parlait James.
En revanche, je ne saisis pas le problème d'avoir du code binaire
dupliqué ? C'est par soucis de la taille de l'exécutable ?
Dites, ça vous dirait pas de vous calmer un peu. Parce que dire
n'importe quoi en agressant les autres et en prenant tout le monde pour
des imbéciles, ce n'est pas bien passionnant. Chercher absolument la
manière d'interprèter ce que dit l'autre de manière à que ce puisse être
faux au lieu de chercher à comprendre ce qu'il dit, c'est aussi très
pénible.
En l'occurrence, l'intérêt d'éviter la duplication de code, c'est
essentiellement pour la maintenance. Un code dupliqué (au niveau des
sources) pose des problèmes de maintenance si une erreur est corrigé
dans une des parties dupliquées et pas dans une autre.
Les templates permettent d'éviter la duplication de code... source.
J'imagine que c'est ce dont parlait James.
En revanche, je ne saisis pas le problème d'avoir du code binaire
dupliqué ? C'est par soucis de la taille de l'exécutable ?
je suis très calme, je n'ai même aucune difficulté à rester calme face à
l'insignifiance.
En l'occurrence, l'intérêt d'éviter la duplication de code, c'est
essentiellement pour la maintenance. Un code dupliqué (au niveau des
sources) pose des problèmes de maintenance si une erreur est corrigé
dans une des parties dupliquées et pas dans une autre.
ah bon !
btw, là vous me prenez pas pour un imbécile, c'est ça ?
Les templates permettent d'éviter la duplication de code... source.
J'imagine que c'est ce dont parlait James.
le thread parlait de "nombre variables d'argument", il me m'intéresse
pas de savoir ce dont James parle à propos de ces templates hors sujet
mais qui "chez lui" ...
En revanche, je ne saisis pas le problème d'avoir du code binaire
dupliqué ? C'est par soucis de la taille de l'exécutable ?
j'ai dit "problème", "souci" ??
une fois de plus vous voulez par une
pirouette ("quel seraient les pbs inhérents à la taille d'un code")
masquer le fait que vos (pardon pour l'amalgame mais il ne me semble pas
déplacé) arguments étaient sans substances (n'apporte rien à la
question) et inexacts (ben oui, un template ça duplique).
je suis très calme, je n'ai même aucune difficulté à rester calme face à
l'insignifiance.
En l'occurrence, l'intérêt d'éviter la duplication de code, c'est
essentiellement pour la maintenance. Un code dupliqué (au niveau des
sources) pose des problèmes de maintenance si une erreur est corrigé
dans une des parties dupliquées et pas dans une autre.
ah bon !
btw, là vous me prenez pas pour un imbécile, c'est ça ?
Les templates permettent d'éviter la duplication de code... source.
J'imagine que c'est ce dont parlait James.
le thread parlait de "nombre variables d'argument", il me m'intéresse
pas de savoir ce dont James parle à propos de ces templates hors sujet
mais qui "chez lui" ...
En revanche, je ne saisis pas le problème d'avoir du code binaire
dupliqué ? C'est par soucis de la taille de l'exécutable ?
j'ai dit "problème", "souci" ??
une fois de plus vous voulez par une
pirouette ("quel seraient les pbs inhérents à la taille d'un code")
masquer le fait que vos (pardon pour l'amalgame mais il ne me semble pas
déplacé) arguments étaient sans substances (n'apporte rien à la
question) et inexacts (ben oui, un template ça duplique).
je suis très calme, je n'ai même aucune difficulté à rester calme face à
l'insignifiance.
En l'occurrence, l'intérêt d'éviter la duplication de code, c'est
essentiellement pour la maintenance. Un code dupliqué (au niveau des
sources) pose des problèmes de maintenance si une erreur est corrigé
dans une des parties dupliquées et pas dans une autre.
ah bon !
btw, là vous me prenez pas pour un imbécile, c'est ça ?
Les templates permettent d'éviter la duplication de code... source.
J'imagine que c'est ce dont parlait James.
le thread parlait de "nombre variables d'argument", il me m'intéresse
pas de savoir ce dont James parle à propos de ces templates hors sujet
mais qui "chez lui" ...
En revanche, je ne saisis pas le problème d'avoir du code binaire
dupliqué ? C'est par soucis de la taille de l'exécutable ?
j'ai dit "problème", "souci" ??
une fois de plus vous voulez par une
pirouette ("quel seraient les pbs inhérents à la taille d'un code")
masquer le fait que vos (pardon pour l'amalgame mais il ne me semble pas
déplacé) arguments étaient sans substances (n'apporte rien à la
question) et inexacts (ben oui, un template ça duplique).
Sylvain wrote:
[...]
Dites, ça vous dirait pas de vous calmer un peu.
Sylvain wrote:
[...]
Dites, ça vous dirait pas de vous calmer un peu.
Sylvain wrote:
[...]
Dites, ça vous dirait pas de vous calmer un peu.
Sylvain wrote:
[...]
Dites, ça vous dirait pas de vous calmer un peu.
Arnaud,
je t'invite à lire <http://fr.wikipedia.org/wiki/Troll_(Internet)>.
Sylvain wrote:
[...]
Dites, ça vous dirait pas de vous calmer un peu.
Arnaud,
je t'invite à lire <http://fr.wikipedia.org/wiki/Troll_(Internet)>.
Sylvain wrote:
[...]
Dites, ça vous dirait pas de vous calmer un peu.
Arnaud,
je t'invite à lire <http://fr.wikipedia.org/wiki/Troll_(Internet)>.
kanze wrote on 11/04/2006 11:44:
non pas que je réserve l'instruction:
errorHdlr << "monTrucVachementPropreQuiSertAFlusher";
pour réaliser le traitement (vs la mise en tampon), mais
juste que c'est trop grotesque pour que je l'imagine.
Mais je n'ai pas de truc (explicit, en tout cas) pour
déclencher le flush. J'exploite la durée de vie des
temporaires, pour que le tout soit transparent à
l'utilisateur.
ah les temporaires, un bon flush masqué dans un destructeur,
j'ai bon Monsieur devinette ?
mais alors, ton post précédent était:Pas chez moi. Au moins, pas avec la forme avec des <<.
peux-tu nous expliquer pourquoi ton destructeur serait géné
par une méthode (T& arg(X x)) et ne le serait pas par un
opérateur << ??
dans le même temps, peux-tu nous expliquer comment loguer
*une* fois la même erreur survenue dans X (64, 128, ...)
threads lancés simultanément mais échouant tous pour la même
raison (extérieure aux threads).
peux-tu également indiquer où placer ton temporaire dans une
chaine d'appels de méthodes (le C++ est procédurale, non?)
d'où on sort par des catch / throw en cascade ?
Je n'ai pas de duplication du code, parce que je me suis
servi des templates. C'est une technique connue et approuvée
par ceux qui connaissent le C++.
non, ceux qui connaissent le C++ savent que "déclarer" et
"instancier" une classe template "duplique" le code template
en code concrêt; le binaire ne contient (évidemment) pas la
classe de définition mais autant de code (dupliqué au type
classe paramètre) que de classes générées.
kanze wrote on 11/04/2006 11:44:
non pas que je réserve l'instruction:
errorHdlr << "monTrucVachementPropreQuiSertAFlusher";
pour réaliser le traitement (vs la mise en tampon), mais
juste que c'est trop grotesque pour que je l'imagine.
Mais je n'ai pas de truc (explicit, en tout cas) pour
déclencher le flush. J'exploite la durée de vie des
temporaires, pour que le tout soit transparent à
l'utilisateur.
ah les temporaires, un bon flush masqué dans un destructeur,
j'ai bon Monsieur devinette ?
mais alors, ton post précédent était:
Pas chez moi. Au moins, pas avec la forme avec des <<.
peux-tu nous expliquer pourquoi ton destructeur serait géné
par une méthode (T& arg(X x)) et ne le serait pas par un
opérateur << ??
dans le même temps, peux-tu nous expliquer comment loguer
*une* fois la même erreur survenue dans X (64, 128, ...)
threads lancés simultanément mais échouant tous pour la même
raison (extérieure aux threads).
peux-tu également indiquer où placer ton temporaire dans une
chaine d'appels de méthodes (le C++ est procédurale, non?)
d'où on sort par des catch / throw en cascade ?
Je n'ai pas de duplication du code, parce que je me suis
servi des templates. C'est une technique connue et approuvée
par ceux qui connaissent le C++.
non, ceux qui connaissent le C++ savent que "déclarer" et
"instancier" une classe template "duplique" le code template
en code concrêt; le binaire ne contient (évidemment) pas la
classe de définition mais autant de code (dupliqué au type
classe paramètre) que de classes générées.
kanze wrote on 11/04/2006 11:44:
non pas que je réserve l'instruction:
errorHdlr << "monTrucVachementPropreQuiSertAFlusher";
pour réaliser le traitement (vs la mise en tampon), mais
juste que c'est trop grotesque pour que je l'imagine.
Mais je n'ai pas de truc (explicit, en tout cas) pour
déclencher le flush. J'exploite la durée de vie des
temporaires, pour que le tout soit transparent à
l'utilisateur.
ah les temporaires, un bon flush masqué dans un destructeur,
j'ai bon Monsieur devinette ?
mais alors, ton post précédent était:Pas chez moi. Au moins, pas avec la forme avec des <<.
peux-tu nous expliquer pourquoi ton destructeur serait géné
par une méthode (T& arg(X x)) et ne le serait pas par un
opérateur << ??
dans le même temps, peux-tu nous expliquer comment loguer
*une* fois la même erreur survenue dans X (64, 128, ...)
threads lancés simultanément mais échouant tous pour la même
raison (extérieure aux threads).
peux-tu également indiquer où placer ton temporaire dans une
chaine d'appels de méthodes (le C++ est procédurale, non?)
d'où on sort par des catch / throw en cascade ?
Je n'ai pas de duplication du code, parce que je me suis
servi des templates. C'est une technique connue et approuvée
par ceux qui connaissent le C++.
non, ceux qui connaissent le C++ savent que "déclarer" et
"instancier" une classe template "duplique" le code template
en code concrêt; le binaire ne contient (évidemment) pas la
classe de définition mais autant de code (dupliqué au type
classe paramètre) que de classes générées.
mais je n'ai pas l'impression qu'il intervient avec le but de
semer la pagaille.
mais je n'ai pas l'impression qu'il intervient avec le but de
semer la pagaille.
mais je n'ai pas l'impression qu'il intervient avec le but de
semer la pagaille.
C'est l'idiome du wrapper d'un flux. Je l'ai déjà présenté
maintes fois. (En fait, ce n'est qu'une incarnation particulière
du modèle de Proxy. Je l'ai trouvé ici dans certain code écrit
il y a plus de dix ans -- avec des {...} en plus, parce que les
compilateurs d'alors ne respectaient pas la durée de vie telle
qu'elle est définie par la norme aujourd'hui.)
C'est l'idiome du wrapper d'un flux. Je l'ai déjà présenté
maintes fois. (En fait, ce n'est qu'une incarnation particulière
du modèle de Proxy. Je l'ai trouvé ici dans certain code écrit
il y a plus de dix ans -- avec des {...} en plus, parce que les
compilateurs d'alors ne respectaient pas la durée de vie telle
qu'elle est définie par la norme aujourd'hui.)
C'est l'idiome du wrapper d'un flux. Je l'ai déjà présenté
maintes fois. (En fait, ce n'est qu'une incarnation particulière
du modèle de Proxy. Je l'ai trouvé ici dans certain code écrit
il y a plus de dix ans -- avec des {...} en plus, parce que les
compilateurs d'alors ne respectaient pas la durée de vie telle
qu'elle est définie par la norme aujourd'hui.)