Affectation template & héritage - C++ - Programmation
Marsh Posté le 01-07-2003 à 14:31:17
Si Xpr est une classe à toi tu la fait dériver d'une classe mère abstraite comme ça toutes les instanciations template auront le même encètre.
Marsh Posté le 01-07-2003 à 14:35:02
un même ancetre .... oui mais je sais pas comment ca va réagir avec le reste du code template.
Et puis, si Xpr herite de Evaluable disons, je met inner_expr de type Evaluable ?
ca va marcher ca ?
Marsh Posté le 01-07-2003 à 14:53:32
Joel F a écrit : un même ancetre .... oui mais je sais pas comment ca va réagir avec le reste du code template. |
Bien sur, tu va faire un truc du style:
Code :
|
Et si mes souvenir sont bon ça passe comme une lettre à la poste, après à toi de convenablement gérer la chose dans l'affectation.
Par contre là ou ca risque de poser un pb c sur le dépliage...
Marsh Posté le 01-07-2003 à 15:41:58
Je viens de tester ca marche suf comme tu le dit lors du dépliage.
Le compilo me génére un appel indirect via la vtable.
Mais dans la fonction qu'il appelle, le code est bien déplié.
Donc comme je pense que le temps d'appel est <<< au temps de calcul ca devrait aller.
Marsh Posté le 01-07-2003 à 15:56:44
Joel F a écrit : Je viens de tester ca marche suf comme tu le dit lors du dépliage. |
Faut tester, t là pour ça non?
Les méthodes virtuelles inline c pas encore ça, je m'en doutais un peu
Marsh Posté le 02-07-2003 à 10:05:00
mmm probleme ...
Si je fait :
Code :
|
ca marche bien
Par contre :
Code :
|
plante lamentablement en core dump
Si je trace la chose, j'aboutis à l'endroit ou j'appele la fonction eval
Voila un peu plus de code :
Code :
|
Voila je suis perdu
Marsh Posté le 02-07-2003 à 10:21:02
Check les operateur de tes vecteur, ça doit venir de là.
Marsh Posté le 02-07-2003 à 10:33:13
non, ca vient pas de la, ca palnte sur l'appel
Code :
|
On dirait qu'il appel une fonction virtuelle qui n'existe pas
Marsh Posté le 02-07-2003 à 10:45:36
Joel F a écrit : non, ca vient pas de la, ca palnte sur l'appel
|
C pas plutôt expr qui serait null?
Marsh Posté le 02-07-2003 à 10:49:43
Joel F a écrit : non, ca vient pas de la, ca palnte sur l'appel
|
sous VC ca genere un assert ou ca appelle une fonction qui te previens gentillement qu'y a une couille dns le gigot, je sais pu trop, enfin ca plante pas comme une bouse sans rien dire
Marsh Posté le 02-07-2003 à 10:53:46
chrisbk a écrit : |
Ouai mais pour une fois il utilise un vrai compilo
Marsh Posté le 02-07-2003 à 10:54:33
LetoII a écrit : |
la punition est a la hauteur de son crime
Marsh Posté le 02-07-2003 à 10:55:34
hmmm expr a une tête bizarre mais c pas NULL ...
je bose pas sous visual mais sous Project Builder ... donc bon ...
Je vois vraiment plus la ...
de toute manière je pense que je m'enlise dans cette voie la, faut que je trouve autre chose ...
Marsh Posté le 02-07-2003 à 10:59:01
Joel F a écrit : hmmm expr a une tête bizarre mais c pas NULL ... |
Ha mon avis t'as bouzé dans l'operateur *
Marsh Posté le 01-07-2003 à 14:17:49
Voila mon probleme :
J'utilise les Expressions Templates pour générer du code inline arithmétique.
Actuellement ma syntaxe ressemble à ca :
a se retrouve affécté par le resultat du calcul de 2*b+c qui est générée de maniée optimisée à la compil.
Quelques details :
le type de 2*x+y est le suivant :
pas genial à manipuler
J'aimerais arriver à une syntaxe comme celle ci :
ca parait tout con, il suffit de doter la classe expression du bon operator() et d'un operateur d'affectation qui ressemblerait à :
Question ... quel doit etre le type de inner_expr ???
Comment affecter un objet template de type quelconque à une donnée de type fixe ???
Merci d'avance.