Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1174 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  FUNCTOR vs static

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

FUNCTOR vs static

n°1935561
Glock 17Pr​o
Posté le 26-10-2009 à 22:00:14  profilanswer
 

Code :
  1. #include <string>
  2. #include <iostream>
  3. using namespace std;
  4. struct Functor{
  5. bool operator()(const std::string&  str){cout<<str<<endl;return true;}
  6. };
  7. struct Functor2{
  8. static bool compute(const std::string&  str){cout<<str<<endl;return true;}
  9. };
  10. struct Foo
  11. {
  12. template<class F>
  13. void callMe()
  14. {
  15.  F()("operator ()" );
  16. }
  17. template<class F>
  18. void callMe2()
  19. {
  20.  F::compute("static" );
  21. }
  22. };
  23. int main(int n,char ** arfv)
  24. {
  25. Foo  obj;
  26. obj.callMe<Functor>();
  27. obj.callMe2<Functor2>();
  28. system("pause" );
  29. }


 
 
Si l'on veut passer une fonction en paramètre quelle méthode est-il préférable d'utiliser ? functor ou functor2 ?
 
Merci.


---------------
.
mood
Publicité
Posté le 26-10-2009 à 22:00:14  profilanswer
 

n°1935568
Joel F
Real men use unique_ptr
Posté le 26-10-2009 à 22:30:44  profilanswer
 

Presque aucune des deux. L'idiome classique pronée par le standard est :
 

Code :
  1. template<class Fun> void callMe( Func f)
  2. {
  3. f("operator ()" );
  4. }

n°1935571
Glock 17Pr​o
Posté le 26-10-2009 à 22:32:14  profilanswer
 

la méthode static présente quel inconvénient ?


---------------
.
n°1935572
Joel F
Real men use unique_ptr
Posté le 26-10-2009 à 22:34:51  profilanswer
 

quelle est statique tiens :o qui dit methode statique, dit etat statique si besoin d'un etat et qui dit etat statique dit non reentrance.
 
Le functor instanciable permet de stocker fonction+etat et d'appeler à la volée (cf pattern Command par exemple)

n°1935573
Glock 17Pr​o
Posté le 26-10-2009 à 22:51:28  profilanswer
 

tiens d'ailleurs en parlant de reentrance, quels sont les conditions pour qu'une fonction en C++ le soit ? quelle soit non static déjà ok mais quoi d'autre?


Message édité par Glock 17Pro le 26-10-2009 à 22:55:33

---------------
.
n°1935574
Aiua
PSN : Aiua / GT : Aiua42
Posté le 26-10-2009 à 23:06:26  profilanswer
 

ne pas utiliser de données statiques (sauf si elle sont constantes), n'utiliser que des données fournies par l'appelant, ne pas appeler de fonction non-réentrante


---------------
"The pen is mightier than the sword if the sword is very short, and the pen is very sharp." TP. Mes Jeux. Mes Ventes. Groupe HFR sur PlayFire.
n°1935575
Glock 17Pr​o
Posté le 26-10-2009 à 23:08:33  profilanswer
 

j'ai lu vite fait qu'un langage comme ADA se prêtait mieux que le C++ pour la programmation parallèle / concurrente , info ou intox ?


---------------
.
n°1935590
Joel F
Real men use unique_ptr
Posté le 27-10-2009 à 06:55:19  profilanswer
 

info. Tout comme tous les languages fonctionels (LISP, HASKELL, CAML et consoeurs)

n°1935595
Glock 17Pr​o
Posté le 27-10-2009 à 07:55:22  profilanswer
 

et avec la prochaine mouture du C++ ou le développement de lib tierce, on ne peux pas espérer qu'un jour le C++ s'en tire mieux dans ce domaine ?


---------------
.
n°1935602
Aiua
PSN : Aiua / GT : Aiua42
Posté le 27-10-2009 à 09:08:38  profilanswer
 

Glock 17Pro a écrit :

j'ai lu vite fait qu'un langage comme ADA se prêtait mieux que le C++ pour la programmation parallèle / concurrente , info ou intox ?


les taches c'est le (seul :o) bonheur en Ada :D


Message édité par Aiua le 27-10-2009 à 09:08:52

---------------
"The pen is mightier than the sword if the sword is very short, and the pen is very sharp." TP. Mes Jeux. Mes Ventes. Groupe HFR sur PlayFire.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  FUNCTOR vs static

 

Sujets relatifs
Methode staticstatic_cast objet fille pointeur
template et functor[Problème] Static linking dans un makefile
[Résolu] static function : normalement pas appelables avec ->Compiler Boost sous MacOS X en STATIC
fonction static, return et onLoad ?Heritage: virtual / static probleme de design
[PHP] pbm fonction "public static"[Résolu] Variable non static depuis une méthode static,Php/Java bridge
Plus de sujets relatifs à : FUNCTOR vs static


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR