Note : il est possible de faire ça sans typedef, mais c'est vite illisible.
Note bis : il est assez peu courant en C++ d'utiliser les pointeurs de fonctions ; on préférera les foncteurs.
-- schtroumpf schtroumpf
Fabien LE LEZ
On Fri, 18 Jun 2004 05:30:07 +0200, "Bernard Bergeron" :
merci, mais tu pourrais me la refaire en une seule fois?
Non, je ne me hasarderais pas à ce genre d'obfuscation. En passant, merci d'apprendre à poster sur Usenet -- cf <http://www.giromini.org/usenet-fr/repondre.html>.
-- schtroumpf schtroumpf
On Fri, 18 Jun 2004 05:30:07 +0200, "Bernard Bergeron"
<bergeron.trash@free.fr>:
merci, mais tu pourrais me la refaire en une seule fois?
Non, je ne me hasarderais pas à ce genre d'obfuscation.
En passant, merci d'apprendre à poster sur Usenet -- cf
<http://www.giromini.org/usenet-fr/repondre.html>.
On Fri, 18 Jun 2004 05:30:07 +0200, "Bernard Bergeron" :
merci, mais tu pourrais me la refaire en une seule fois?
Non, je ne me hasarderais pas à ce genre d'obfuscation. En passant, merci d'apprendre à poster sur Usenet -- cf <http://www.giromini.org/usenet-fr/repondre.html>.
-- schtroumpf schtroumpf
Michel Michaud
Dans news:40d260ad$0$287$, Bernard
merci, mais tu pourrais me la refaire en une seule fois? .. aucune utilité bien sûr sinon de comprendre l'ordre d'écriture...
Tu en demandes beaucoup et tu ne fais pas beaucoup d'effort, moi en tout cas, je n'avais rien compris de ta question... Il faudrait que tu apprennnes aussi à répondre à la bonne place, c'est bien plus simple que les déclarations C...
"Fabien LE LEZ" a écrit dans le message de news:
On Fri, 18 Jun 2004 03:04:09 +0200, "Bernard Bergeron" :
comment définir f qui à un élément de type t1 associe une fonction qui à - une fonction qui associe à t2 -> t3
Je suppose que tu parles d'une fonction qui a un seul argument, de type t2, et qui renvoie un t3 ?
Note : il est possible de faire ça sans typedef, mais c'est vite illisible.
Je ne trouve pas que c'est lisible avec les typedef non plus :-)
Ceci dit, pour faire plaisir à Bernard, si ta réponse est correcte, on peut aussi écrire :
t5 (*(*f(t1))(t3 (*)(t2)))(t4) {}
Qu'on peut lire :
- f prend un paramètre de type t1 f(t1) - elle renvoie quelque chose qu'on peut déréférencer et alors on a une fonction à laquelle on peut passer un paramètre (*f(t1))(?) - ce paramètre est un pointeur sur une fonction acceptant un t2 et renvoyant un t3 i.e. t3 (*)(t2) donc (*f(t1))(t3 (*)(t2)) - cet appel de fonction renvoie quelque chose qu'on peut déréférencer et alors on a une fonction à laquelle on peut passer un paramètre (*(*f(t1))(t3 (*)(t2)))(?) - ce paramètre est un t4 et la fonction renvoie un t5 donc t5 (*(*f(t1))(t3 (*)(t2)))(t4)
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Dans news:40d260ad$0$287$626a14ce@news.free.fr, Bernard
merci, mais tu pourrais me la refaire en une seule fois?
.. aucune utilité bien sûr sinon de comprendre l'ordre
d'écriture...
Tu en demandes beaucoup et tu ne fais pas beaucoup d'effort,
moi en tout cas, je n'avais rien compris de ta question...
Il faudrait que tu apprennnes aussi à répondre à la bonne
place, c'est bien plus simple que les déclarations C...
"Fabien LE LEZ" <gramster@gramster.com> a écrit dans le message
de news:8cm4d0t34voo4ifp7u1g90d08ijk0quj4p@4ax.com...
On Fri, 18 Jun 2004 03:04:09 +0200, "Bernard Bergeron"
<bergeron.trash@free.fr>:
comment définir f qui à un élément de type t1 associe une
fonction qui à - une fonction qui associe à t2 -> t3
Je suppose que tu parles d'une fonction qui a un seul
argument, de
type t2, et qui renvoie un t3 ?
Note : il est possible de faire ça sans typedef, mais c'est
vite illisible.
Je ne trouve pas que c'est lisible avec les typedef non plus :-)
Ceci dit, pour faire plaisir à Bernard, si ta réponse est
correcte, on peut aussi écrire :
t5 (*(*f(t1))(t3 (*)(t2)))(t4)
{}
Qu'on peut lire :
- f prend un paramètre de type t1
f(t1)
- elle renvoie quelque chose qu'on peut déréférencer
et alors on a une fonction à laquelle on peut passer un
paramètre
(*f(t1))(?)
- ce paramètre est un pointeur sur une fonction acceptant
un t2 et renvoyant un t3 i.e. t3 (*)(t2) donc
(*f(t1))(t3 (*)(t2))
- cet appel de fonction renvoie quelque chose qu'on peut
déréférencer et alors on a une fonction à laquelle on peut
passer un paramètre
(*(*f(t1))(t3 (*)(t2)))(?)
- ce paramètre est un t4 et la fonction renvoie un t5 donc
t5 (*(*f(t1))(t3 (*)(t2)))(t4)
--
Michel Michaud mm@gdzid.com
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
merci, mais tu pourrais me la refaire en une seule fois? .. aucune utilité bien sûr sinon de comprendre l'ordre d'écriture...
Tu en demandes beaucoup et tu ne fais pas beaucoup d'effort, moi en tout cas, je n'avais rien compris de ta question... Il faudrait que tu apprennnes aussi à répondre à la bonne place, c'est bien plus simple que les déclarations C...
"Fabien LE LEZ" a écrit dans le message de news:
On Fri, 18 Jun 2004 03:04:09 +0200, "Bernard Bergeron" :
comment définir f qui à un élément de type t1 associe une fonction qui à - une fonction qui associe à t2 -> t3
Je suppose que tu parles d'une fonction qui a un seul argument, de type t2, et qui renvoie un t3 ?
Note : il est possible de faire ça sans typedef, mais c'est vite illisible.
Je ne trouve pas que c'est lisible avec les typedef non plus :-)
Ceci dit, pour faire plaisir à Bernard, si ta réponse est correcte, on peut aussi écrire :
t5 (*(*f(t1))(t3 (*)(t2)))(t4) {}
Qu'on peut lire :
- f prend un paramètre de type t1 f(t1) - elle renvoie quelque chose qu'on peut déréférencer et alors on a une fonction à laquelle on peut passer un paramètre (*f(t1))(?) - ce paramètre est un pointeur sur une fonction acceptant un t2 et renvoyant un t3 i.e. t3 (*)(t2) donc (*f(t1))(t3 (*)(t2)) - cet appel de fonction renvoie quelque chose qu'on peut déréférencer et alors on a une fonction à laquelle on peut passer un paramètre (*(*f(t1))(t3 (*)(t2)))(?) - ce paramètre est un t4 et la fonction renvoie un t5 donc t5 (*(*f(t1))(t3 (*)(t2)))(t4)
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Jean-Noël Mégoz
"Michel Michaud" a écrit dans le message de news:T6uAc.50598$
Je ne trouve pas que c'est lisible avec les typedef non plus :-)
Ceci dit, pour faire plaisir à Bernard, si ta réponse est correcte, on peut aussi écrire :
t5 (*(*f(t1))(t3 (*)(t2)))(t4) {}
C'est vrai que comme ça, c'est limpide ! Y'en a pas un qui parlait de supprimer le parenthèsage, dans une autre conversation, déjà ? ;)))
"Michel Michaud" <mm@gdzid.com> a écrit dans le message de
news:T6uAc.50598$7H1.1708439@news20.bellglobal.com...
Je ne trouve pas que c'est lisible avec les typedef non plus :-)
Ceci dit, pour faire plaisir à Bernard, si ta réponse est
correcte, on peut aussi écrire :
t5 (*(*f(t1))(t3 (*)(t2)))(t4)
{}
C'est vrai que comme ça, c'est limpide !
Y'en a pas un qui parlait de supprimer le parenthèsage, dans une autre
conversation, déjà ? ;)))