begin process at 2012 05 30 07:22:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

question rapide : templates ...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

question rapide : templates ...

vendredi 9 avril 2010 à 12:30:32 | question rapide : templates ...

kamuikun

Bonjour,

Petite question concernant les templates en C++ :

En gros, j'ai une fonction qui peut avoir plusieurs variantes selon le type de son paramètre, mais la structure de la fonction est la même pour toutes les variantes, seul le type du paramètre change, j'aimerai donc utiliser les templates pour ne pas avoir à répéter mon code plusieurs fois inutilement (et c'est plus simple à maintenir), voilà un exemple concret :

J'ai un fichier fct.h avec la déclaration d'une fonction :
template<typename T>
void fct(T _arg);

Puis la définition dans un fichier fct.cpp :
#include "fct.h"
template<typename T>
void fct(T _arg) { }

Enfin, un fichier main.cpp principal :
#include "fct.h"
fct(int);
fct(float);
ect.

ça se compile, mais le linkage bug, car il ne trouve pas fct(int) ni fct(float)

La seule solution que j'ai trouvé pour l'instant c'est de mettre la définition carrément dans le .h, mais personnellement je ne trouve pas ça très propre...

Y'a t'il une autre solution plus correcte ? ou une autre manière sans utiliser les templates pour ce même problème ?
vendredi 9 avril 2010 à 13:27:20 | Re : question rapide : templates ...

CptPingu

Administrateur CodeS-SourceS
Réponse acceptée !
Effectivement, c'est une excellente question :)

Il faut savoir que les templates ne sont pas du code, mais des générateurs de code ! Donc il n'existe pas à proprement parler dans ton code. Il ne peuvent donc pas être dans un .cpp et donc on ne peut pas les spécifier au linkage.

La solution propre:
.hh => Définition du template
.hxx => Écriture du template. Le .hxx est inclus par le .hh
.cc => le code (ou pas de .cc si ce n'est pas nécessaire, ce qui arrive très très souvent).

Je t'invite à regarder l'une de mes sources ou j'utilise cette technique:
http://www.cppfrance.com/codes/COMPILATEUR-PSEUDO-PASCAL_49318.aspx

_____________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
vendredi 9 avril 2010 à 19:17:08 | Re : question rapide : templates ...

kamuikun

OK je voit comment ça marche maintenant, merci pour ta réponse :)


Cette discussion est classée dans : fichier, fonction, question, fct, templates


Répondre à ce message

Sujets en rapport avec ce message

Question sur fopen [ par kinouseba ] Bonjour à tous,j'ai une question à vous poser concernant la fonction fopen.J'ai 2 processus distincts, succeptibles d'accéder à un même fichier (à l'o Fichier texte écrit avec la fonction fprintf [ par dayvid75014 ] Bonjour à tous,Pendant l'exécution de mon programme, je viens récupérer des informations et les écrire dans un fichier texte. Cependant, lorsque je re String en argument de fonction [ par Sniperman113 ] Bonjour,J'ai un problème avec string lorsque je le mets dans un prototype de fonction dans mon fichier .h et même dans le fichier des fonctions .cppIl reprendre une fct de main [ par MirKoRn ] je voudrai savoir si il y a une fonction pour reprendre les éléments de main(pour moi un tableau) pour le mettre dans une autre fonction, toujours sur Différence Fichier - Dossier [ par Spoolega ] Bonjour,J'ai créé une fonction qui me permet de savoir si l'argument que je lui passe (c'est une chaine de caractères) est l'emplacement d'un fichier Winsock pas fiable?? (fonction recv ) [ par ssmint ] Bonsoir à tous,une fois de plus mon insomnie me pousse vers mon IDE pour une session de codage.. (Ou pour le coup c'est le code qui me rend insomniaqu fichier batch petite question [ par gege1024 ] est-il possible, dans un batch, de demander a l'utilisateur s'il veut continuer l'execution ou pas?en gros je veux une confirmation avant d'executer l Question extension fichier + pb float [ par jeromedu94 ] Bonjour,Tout d'abord, j'ai une question sur les fichiers, je sais que l'extension fait partie du nom, mais serait-il possible d'ouvrir un fichier dont petit question [ par snpier wolf ] bonsoir à tous,voila savez vous comment fait on pour qu'un programme utilise le fichier qu'on lui met dessu? je m'explique, il y a des programmes quan cherche volontaire [ par greg38bj ] bonjour,j'ai un fichier en pseudo C qui m'a été fourni par ida pro lors de la décomposition d'un soft.Dans ce fichier (auquel je ne comprends rien), i


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales