Bonjour,

Voilà j'ai un probleme avec un template sur une classe qui herite déjà d'une autre.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
template <typename T>
class FindKindNodes : public osg::NodeVisitor
la classe NodeVisitor herite elle meme virtuellement d'une autre, des fois que ça change qqch ...

la compilation de mon template se passe bien, mais lors de l'utilisation, j'ai une erreur error C2664 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
FindKindNodes<osgParticle::ModularEmitter> fnn();
node->accept(fnn); //erreur ici
L'erreur est :
error C2664: 'osg::Node::accept'*: impossible de convertir le paramètre 1 de 'FindKindNodes<T> (__cdecl *)(void)' en 'osg::NodeVisitor &'
1> with
1> [
1> T=osgParticle::ModularEmitter
1> ]
la méthode accept() a pour prototype exact :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
virtual void accept(NodeVisitor& nv);
Mon template herite bien de NodeVisitor ... alors pourquoi le compilateur refuse ?

N'importe qu'elle idée sera la bienvenue :-)
Merci.