France Hardware : Forums de discussion - Découvrez notre nouveau comparateur d'offres Internet
Retrouvez les prix près de chez vous :  
Index du forum | Liste des membres | Liste des groupes | Inscription | F-A-Q | Recherche
Pseudo :    Password :     
29 511 membres enregistrés - 2 069 318 posts - 122 026 topics
Index des forums FH  | Index des forums DegroupNews
      Programmation
           Sujets divers
                [C++] templates : spécialisation selon le "super-type"
60 connectés(record : 2799 le 29 May 2016 - 15 h 34)

Vous devez vous connecter pour répondre au topic.
[C++] templates : spécialisation selon le "super-type"

Petit_PimoOosE
rsqrtps & pshufb

Messages : 4 617
Inscrit le 15/06/03
Ville : Montréal
Non connecté
  Posté le 18 August 2005 - 00 h 00 m 00 s
Bonjour !

Bon, comme ça ne concerne pas vraiment la synthèse ni le DSP, je crée un topic à part, mais c'est pour ma lib (http://forums.france-hardware.com/disc/programmation/sujet-68430.html).

Résolu, voir plus bas

J'aimerais gérer plusieurs types de buffers, c'est-à-dire pouvoir appliquer mes algorithmes à des buffers contenant tant des float que des unsigned long ou des signed char.

Pour l'instant, je ne me suis pas posé de question (enfin si mais bon) et j'utilise un float *. Devrais-je passer à un void *, ajouter un champ "type" à ma classe de buffer et faire un switch dans chaque fonction utilisant un buffer (à peu près tout la lib), ou bien créer un template de buffer et réécrire mes fonctions pour chaque type (étant donné que je ne traite pas un float comme un int, un int signé différement d'un int signé et que les limites pour un char ne sont pas les même que pour un long long) ?

Nouveau sujet
Bon, alors nouvelle question : pensez-vous qu'il soit possible de spécialiser un template... de manière générique ?
J'aimerais pondre le même code pour tous les entiers signés, un autre code pour tous les entiers non-signés, et un troisième pour les flottants... Ça vous semble possible ?


Message édité 1 fois, la dernière par Petit_PimoOosE le 23 August 2005 - 05 h 58.

Huile de fraise.

alitokmen
Think ®

Messages : 3 686
Inscrit le 19/09/02
Ville : Grenoble, France || Ankara, Turquie
Non connecté
  Posté le 18 August 2005 - 11 h 01 m 53 s
Alors, dans une solution tu dis qu'à chaque fois c'est le logiciel qui doit parcourir le liste des switch ... case pour arriver au bon; dans l'autre tu supposes que c'est le compilateur qui sera capable de faire le bon appel à la bonne fonction.

Si tu fais confiance à ton compilateur, tu peux choisir la deuxième méthode (donc une même nom de fonction défini avec plusieurs types possibles -overload ça s'apelle je crois).



S. Ali Tokmen
http://ali.tokmen.com
http://contact.ali.tokmen.com


Petit_PimoOosE
rsqrtps & pshufb

Messages : 4 617
Inscrit le 15/06/03
Ville : Montréal
Non connecté
  Posté le 18 August 2005 - 19 h 25 m 50 s
En fait, si j'utilisais les templates, je ferais moi-même les spécialisations quand même, parce que le compilateur ne peut pas deviner ce qu'il faut faire si je lui file des float ou des entiers et si ces derniers sont signés ou non.

En fait, de toute façon, je vais devoir dupliquer le code pour chaque type accepté. Ce que je me demande, en fait, c'est si cette duplication sera faite dans la fonction ou si je multiplie les fonctions...

Ce qui m'emm** avec les templates, c'est qu'il va falloir que je fasse des templates pour chacunes des classes de ma bibliothèque.
Ce qui me saoûle avec le void *, c'est que je trouve ça sale.

Je pense que je vais opter pour les templates :dd:



Huile de fraise.

alitokmen
Think ®

Messages : 3 686
Inscrit le 19/09/02
Ville : Grenoble, France || Ankara, Turquie
Non connecté
  Posté le 19 August 2005 - 08 h 15 m 26 s


Le 18 août 2005 - 19 h 25, Petit_PimoOosE a écrit :
En fait, de toute façon, je vais devoir dupliquer le code pour chaque type accepté. Ce que je me demande, en fait, c'est si cette duplication sera faite dans la fonction ou si je multiplie les fonctions...


En effet... Tu peux multiplier les fonctions ou faire un switch, le switch sera moins lourd en mémoire et plus lourd en processeur; la duplication des fonctions sera plus lourd en mémoire et moins lourd en processeur (par contre peut bugger si le compilateur est plutôt un "c*npilateur")



Le 18 août 2005 - 19 h 25, Petit_PimoOosE a écrit :
Ce qui m'emm** avec les templates, c'est qu'il va falloir que je fasse des templates pour chacunes des classes de ma bibliothèque.


Oui, c'est ce que je disais pour la partie "possible que ça utilise plus de mémoire"



Le 18 août 2005 - 19 h 25, Petit_PimoOosE a écrit :
Ce qui me saoûle avec le void *, c'est que je trouve ça sale.


Mon style, quoi :)



Le 18 août 2005 - 19 h 25, Petit_PimoOosE a écrit :
Je pense que je vais opter pour les templates :dd:


:yes: Très bon choix (dans tous les cas vaut mieux faire ce que l'on sait mieux faire) ... Bonne chance :tut:


Message édité 1 fois, la dernière par alitokmen le 19 August 2005 - 08 h 18.

S. Ali Tokmen
http://ali.tokmen.com
http://contact.ali.tokmen.com


Petit_PimoOosE
rsqrtps & pshufb

Messages : 4 617
Inscrit le 15/06/03
Ville : Montréal
Non connecté
  Posté le 20 August 2005 - 00 h 27 m 39 s
Merci ;)
plus qu'a trouver le courage...



Huile de fraise.

Petit_PimoOosE
rsqrtps & pshufb

Messages : 4 617
Inscrit le 15/06/03
Ville : Montréal
Non connecté
  Posté le 23 August 2005 - 05 h 58 m 40 s
Nouveau sujet
Bon, alors nouvelle question : pensez-vous qu'il soit possible de spécialiser un template... de manière générique ?
J'aimerais pondre le même code pour tous les entiers signés, un autre code pour tous les entiers non-signés, et un troisième pour les flottants... Ça vous semble possible ?



Huile de fraise.

knightmare
- Ancien Modérateur -
comme vous voudrez...

Messages : 5 295
Inscrit le 12/06/05
Ville : Lyon (ou presque)
Non connecté
  Posté le 23 August 2005 - 14 h 54 m 17 s
Ah et puis il faudrait aussi un programme qui puisse écrire des programmes tout seul, parce que j'ai pas envie de m'embêter à taper du code.

:okokjesors:



Profitez de la vie et soyez heureux. C'est le plus important.

Petit_PimoOosE
rsqrtps & pshufb

Messages : 4 617
Inscrit le 15/06/03
Ville : Montréal
Non connecté
  Posté le 23 August 2005 - 16 h 50 m 20 s
ça existe :P
il doit bien y avoir un projet perdu sur sf.net ou freshmeat qui pond du code à partir de formules mathématiques...



Huile de fraise.

Page genérée en 0.1480 secondes par RahForum 2.0 | Gzip off |  Stats |  Metaforums |  RSS
© 2004 Cerbere Systems.
Prix Matériel Informatique | Informatique Lyon | Informatique Grenoble | Informatique Annecy | Informatique Marseille | Informatique Bordeaux | Forum Informatique
ADSL | Actualité ADSL | Deligo | Appareil photo | Commande Au Volant
Creative Commons
Message Boards and Forums Directory