C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Foncteur, Pointeurs de fonctions, Classes

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
Murlock
Guest





PostPosted: Mon Jul 05, 2004 8:23 am    Post subject: Foncteur, Pointeurs de fonctions, Classes Reply with quote



Bonjour à vous, gourous du C++

Je viens de passer à STL il y a quelques semaines pour refaire un vieux
projet en objet/STL/C++...

J'en arrive un moment où je dois effectuer des callbacks et j'ai
quelques questions, est-il obligé (conseillé ?) d'utiliser Boost pour
ses fonctions bind pour avoir la possibilité de faire des appels de
fonctions membres ou alors une autre solution existe-t-elle ?

un p'tit exemple de ce que je voudrais faire (de manière portable et
sans trop grosse magouilles dur à maintenir)

Class Boutton {

callback call;

void Event() {
// appeler le callback s'il est positionné
}

};

class interface {
std::list<Bouton*> lst;
//...
}

class interface_spe: public interface {
public:

void MaFonctionCallback() {
}

void Create() {
// ajout d'un bouton avec son callback
Bouton *b=new Bouton;
b.setCallBack( MaFonctionCallBack );
lst.push_back( b );
}

void Run() {
}
}



Cordialement
Michael
Back to top
drkm
Guest





PostPosted: Mon Jul 05, 2004 3:49 pm    Post subject: Re: Foncteur, Pointeurs de fonctions, Classes Reply with quote



Murlock wrote in message <40e91075$0$25713$636a15ce (AT) news (DOT) free.fr>:

Quote:
J'en arrive un moment où je dois effectuer des callbacks et j'ai
quelques questions, est-il obligé (conseillé ?) d'utiliser Boost pour
ses fonctions bind pour avoir la possibilité de faire des appels de
fonctions membres ou alors une autre solution existe-t-elle ?

Boost ne fait que fournir une solution utilisable, tout comme tu
pourais toi-même l'implémenter. Tu n'es donc pas obligé d'utiliser
Boost.

Sans doute peux-tu t'inspirer de ceci :

class Interface {
public:
void firstCallback() { }
void secondCallback() { }
} ;

class Boutton {
public:
Boutton( Interface * object , void ( Interface:: * func )() )
: myObject( object ) , myFunction( func )
{ }
private:
Interface * myObject ;
void ( Interface:: * myFunction )() ;
} ;

Mais il existe nombre de bibliothèques fournissant des outils
encapsulant tout cela, et nombre d'articles sur le sujet. À commencer
par Boost et Loki, la bibliothèque implémentée dans « Modern C++
Design » d'Andreï Alexandrescu.

Cfr. <URL:www.moderncppdesign.com/> et <URL:www.cuj.com/>, entre
autres.

--drkm

Back to top
Murlock
Guest





PostPosted: Tue Jul 06, 2004 9:31 pm    Post subject: Re: Foncteur, Pointeurs de fonctions, Classes Reply with quote



drkm wrote:
Quote:
Murlock wrote in message <40e91075$0$25713$636a15ce (AT) news (DOT) free.fr>:


J'en arrive un moment où je dois effectuer des callbacks et j'ai
quelques questions, est-il obligé (conseillé ?) d'utiliser Boost pour
ses fonctions bind pour avoir la possibilité de faire des appels de
fonctions membres ou alors une autre solution existe-t-elle ?


Boost ne fait que fournir une solution utilisable, tout comme tu
pourais toi-même l'implémenter. Tu n'es donc pas obligé d'utiliser
Boost.

Sans doute peux-tu t'inspirer de ceci :
snip

Effectivement, ça mérite un examen approfondi

Quote:

Mais il existe nombre de bibliothèques fournissant des outils
encapsulant tout cela, et nombre d'articles sur le sujet. À commencer
par Boost et Loki, la bibliothèque implémentée dans « Modern C++
Design » d'Andreï Alexandrescu.

Cfr. <URL:www.moderncppdesign.com/> et <URL:www.cuj.com/>, entre
autres.

--drkm


Merci pour toutes ces références, je vais potasser cette documentation à
tête reposé...

Cordialement,
Murlock

Back to top
Murlock
Guest





PostPosted: Wed Jul 07, 2004 9:26 am    Post subject: Re: Foncteur, Pointeurs de fonctions, Classes Reply with quote

Pour information, j'ai implémenté la solution trouvé sur
http://www.function-pointer.org/.

Back to top
drkm
Guest





PostPosted: Wed Jul 07, 2004 5:17 pm    Post subject: Re: Foncteur, Pointeurs de fonctions, Classes Reply with quote

Murlock wrote in message <40ebc1e2$0$29377$626a14ce (AT) news (DOT) free.fr>:

Quote:
Pour information, j'ai implémenté la solution trouvé sur
http://www.function-pointer.org/.

Qui est ... ?

--drkm

Back to top
Murlock
Guest





PostPosted: Wed Jul 07, 2004 9:29 pm    Post subject: Re: Foncteur, Pointeurs de fonctions, Classes Reply with quote

drkm wrote:
Quote:
Murlock wrote in message <40ebc1e2$0$29377$626a14ce (AT) news (DOT) free.fr>:


Pour information, j'ai implémenté la solution trouvé sur
http://www.function-pointer.org/.


Qui est ... ?

--drkm


http://www.function-pointer.org/functor.html#functors

Peut-être qu'il y a des inconvénients ? ou des effets de bords mais ça
semble me convenir

Cordialement;
Murlock

Back to top
Michaël Delva
Guest





PostPosted: Thu Jul 08, 2004 12:07 am    Post subject: Re: Foncteur, Pointeurs de fonctions, Classes Reply with quote

Quote:
Peut-être qu'il y a des inconvénients ? ou des effets de bords mais ça
semble me convenir

Me frappez pas, mais c'est quoi un effet de bord?

Back to top
drkm
Guest





PostPosted: Thu Jul 08, 2004 1:50 am    Post subject: Re: Foncteur, Pointeurs de fonctions, Classes Reply with quote

Murlock wrote in message <40ec5c8d$0$18107$626a14ce (AT) news (DOT) free.fr>:

Quote:
drkm wrote:
Murlock wrote in message <40ebc1e2$0$29377$626a14ce (AT) news (DOT) free.fr>:

Pour information, j'ai implémenté la solution trouvé sur
http://www.function-pointer.org/.

Qui est ... ?

http://www.function-pointer.org/functor.html#functors

Merci.

Quote:
Peut-être qu'il y a des inconvénients ? ou des effets de bords mais ça
semble me convenir

Il me semble qu'il s'agit d'une implémentation basique très
correcte. Par rapport à l'exemple simplissime que je t'ai donné, il
ajoute une base abstraite, et un paramètre de modèle pour la classe
dont on prend un pointeur vers une fonction membre.

Si je me souviens bien, Alexandrescu, dans Loki, fournit également
des paramètres de modèles pour le type de retour et des arguments (il
doit utiliser une TypeList pour les arguments, je pense). Toujours
d'après mes souvenirs, ses foncteurs son aussi plus généraux, dans le
sens où ils peuvent encapsuler un appel de pointeur vers fonction, ou
un appel de pointeur vers fonction membre, ou un appel de foncteur ...
Bref, tout ce qui est appelable.

--drkm

Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.