IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Arguments variable et factorisation


Sujet :

C++

  1. #1
    Membre �clair� Avatar de Seabirds
    Homme Profil pro
    Post-doctoral fellow
    Inscrit en
    Avril 2015
    Messages
    294
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Post-doctoral fellow
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2015
    Messages : 294
    Par d�faut Arguments variable et factorisation
    Hello !

    Une classe me pose quelques probl�mes de duplication de code: la logique et la m�me dans les deux versions de fonctions mais a cause d'arguments suppl�mentaires je n'arrive pas a abstraire. Je connais un peut les variadic template, mais la je s�che ! Peut-�tre pourriez-vous m'aider a factoriser ?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
      template<typename Generator, typename Tree>
      forest_type<Tree> coalescence_process(forest_type<Tree> forest, history_type const& history, Generator& gen)
      {
        auto t = history.last_time();
        while( (forest.nb_trees() > 1) && (t > history.first_time()) )
        {
          coalesce(forest, t, gen); // <---- attention ca va changer dans la seconde version
          simulate_backward_migration(forest, t, gen);
          --t;
        }
        coalesce(forest, t, gen); // <---- attention ca va changer dans la seconde version
        return forest;
      }
     
      template<typename Generator, typename F, typename Tree>
      forest_type<Tree> coalescence_process(forest_type<Tree> forest, history_type const& history, F binary_op, Generator& gen)
      {
        auto t = history.last_time();
     
        while( (forest.nb_trees() > 1) && (t > history.first_time()) )
        {
          coalesce(forest, t, binary_op, gen);  // <----et voila, un petit opérateur qui met le bazar
          simulate_backward_migration(forest, t, gen);
          --t;
        }
        coalesce(forest, t, binary_op, gen); // <----et voila, un petit opérateur qui met le bazar
        return forest;
      }
    En vous remerciant,

  2. #2
    Membre �clair�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Avril 2010
    Messages
    517
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : Sant�

    Informations forums :
    Inscription : Avril 2010
    Messages : 517
    Par d�faut
    Salut,

    Je mettrais un op�rateur binaire par d�faut quitte � ce qu'il soit factice (il ne modifierai pas les valeurs):

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     template<typename Generator, typename F, typename Tree>
      forest_type<Tree> coalescence_process(forest_type<Tree> forest, history_type const& history, Generator& gen, F binary_op = FacticeBinaryOp())
      {
        auto t = history.last_time();
     
        while( (forest.nb_trees() > 1) && (t > history.first_time()) )
        {
          coalesce(forest, t, gen, binary_op); 
          simulate_backward_migration(forest, t, gen);
          --t;
        }
        coalesce(forest, t, gen, binary_op);
        return forest;
      }

  3. #3
    Membre �clair� Avatar de Seabirds
    Homme Profil pro
    Post-doctoral fellow
    Inscrit en
    Avril 2015
    Messages
    294
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Post-doctoral fellow
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2015
    Messages : 294
    Par d�faut
    L'argument par d�faut ... Je n'y avait absolument pas pens�
    Merci !!!

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. m�thodes avec nombres d'arguments variable
    Par spynux dans le forum Langage
    R�ponses: 2
    Dernier message: 26/05/2006, 13h51
  2. [variadic] passer un objet en argument variable
    Par Spartan03 dans le forum C++
    R�ponses: 3
    Dernier message: 30/04/2006, 11h31
  3. R�ponses: 4
    Dernier message: 31/10/2005, 17h48
  4. Macros et nombre d'arguments variable
    Par kaisse dans le forum C
    R�ponses: 7
    Dernier message: 28/07/2005, 10h10
  5. Nombre d'arguments variable
    Par gege2061 dans le forum C
    R�ponses: 7
    Dernier message: 05/08/2004, 15h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo