Appels de fonctions non surchargées - C++ - Programmation
Marsh Posté le 26-10-2003 à 11:34:15
ca depend
1/ C'est pas mal, pense bien a tout mettre dans le .h pour que le compilo inline tout ca
2/ D'un point de vu perf les fonction glColor3f et consorts sont ce qui se fait de pire mais c ptet pas ton soucis du moment
Marsh Posté le 27-10-2003 à 08:34:45
chrisbk a écrit : ca depend |
Le mot clef inline il est pas là pour rien non plus
Marsh Posté le 27-10-2003 à 08:55:08
ReplyMarsh Posté le 27-10-2003 à 09:03:23
Code :
|
Fait la même chose que:
Code :
|
Dans un cas tu déclare explicitement la méthode comem inline, dans l'autre tu le fais implicitement.
Après c juste une question de rpésentation.
Marsh Posté le 27-10-2003 à 09:06:10
Bah la je vais parler pour VC6/2002 vu que c les compilos que j'ai le plus utilisé.
Si tu la joue comme ca et que tu balances l'implementation de ta fonction dans un fichier non accessible au travers du .h et/ou du cpp en cours de compil, tu va te manger une vilaine erreur de link (j'imagine que les inlines ne sont pas compilés(?) et que comme le compilateur n'a pu trouver l'implem de la fonction lors de la compil il a fait un appel stdart et pouf t'as l'air con)
Tu peux me dire qu'en est il dans d'autre compilo ? Y'a des compilos fournis avec un linker suffisament couillu pour faire l'inlining ? (ca me paraitrait surprenant quand meme)
Sous VC, inline est utilisé comme indicateur "hey celle la ca serait bien que tu me l'inline". Rien n'oblige le compilo a inline (il fait un calcul cout/gain qu'on peu fait sauter avec __forceinline)
Marsh Posté le 27-10-2003 à 09:09:13
chrisbk a écrit : Bah la je vais parler pour VC6/2002 vu que c les compilos que j'ai le plus utilisé. |
Je veux bien croire que visual est une merde mais là je pense que c toi qui a fait une connerie...
Marsh Posté le 27-10-2003 à 09:11:12
LetoII a écrit : |
paske toi tu peuxfaire ca :
toto.h
Code :
|
toto.cpp
Code :
|
roger.cpp
Code :
|
?
Marsh Posté le 27-10-2003 à 09:16:48
chrisbk a écrit :
|
Bien sûr que non, désolé j'avais mal lu ta réponse, mais ça te permet de mettre la définition de la méthode en dehors de la définition de la classe, ce qui peut améliorer la lisibilité.
Marsh Posté le 27-10-2003 à 09:19:48
LetoII a écrit : |
bien sur que, bien sur que, ca serait pas mal de pouvoir le faire quand meme
bon ben on est d'accord en fait ? On va boire un coup pour feter ca ?
Marsh Posté le 27-10-2003 à 09:24:40
chrisbk a écrit : |
Sans alcool pour moi
Marsh Posté le 27-10-2003 à 09:27:25
p-e peux-tu spécialiser ton template aussi
(si je fais pas d'erreur de syntaxe
Code :
|
dites moi si j'ai fait une boulette ?
Marsh Posté le 27-10-2003 à 09:33:43
BlackGoddess a écrit : p-e peux-tu spécialiser ton template aussi
|
Y a quelques petites erreurs:
Code :
|
Marsh Posté le 27-10-2003 à 15:34:24
(...je viens de rentrer...)
Merci à tous pour vos réponses!
Je m'édite dessus.
chrisbk a écrit : ca depend |
Je vais effectivement les taper en inline, c'est un bon conseil. Je préfère retaper "inline" devant chaqunes d'elles même si j'utilise pour l'instant VC6; au pire dans l'immédiat se sera redondant mais bon, y se peut que je change de compilateur d'ici peu donc je préfère être sûr.
2/J'avoue que dans l'immédiat ce n'est pas mon premier soucis mais ce le sera sans doute d'ici peu; cette fonction est desoptimisée par rapport aux autres glcolor3x ou elles le sont toutes au même titre?
Que me conseils tu?
Marsh Posté le 27-10-2003 à 15:36:45
Peak a écrit : 2/J'avoue que dans l'immédiat ce n'est pas mon premier soucis mais se le sera sans doute d'ici peu; cette fonction est desoptimisé par rapport aux autres glcolor3x ou elles le sont toutes au même titre? |
desoptimisé en tout
Ca te fais un appel de fonction par composante de point (plus les conversions si tu utilises des floats alors que la carte veut des entier)
Je te conseillerais de regarder les drawGlElement drawArray (ou dans le gout, OGL ca fait un bail....)
Avant de regarder ca regarde bien avant si tes glVertexMachin ne remplissent quand meme pas le but que tu t'etais assigné, pas la peine de se faire mal pour rien
Marsh Posté le 25-10-2003 à 17:15:00
Bonjour à tous,
j'ai une question existentiel sur le cpp;
contexte:
Imaginons une class dont la type des variables membres est donné via un template.
style:
à la place de "//appel fonction" je voudrai en fait appeler des fonctions différentes en fonction du type Elem par exemple :
Evidement si j?avais simplement eu la fonction glColor3() surchargé, le problème ne se serai pas posé ; mais ce n?est pas le cas dans GL.h.
La seule solution qui m'est venu à l'esprit est de retapper une fonction glColor3() surchargé qui elle appelera la fonction de GL.h appropriée.
style :
Cela ce fait il?
Y'a t-il mieux??