Le cast m'a l'air non seulement inutile, mais en plus dangereux, car il forcera le compilateur à se taire s'il remarque une erreur.
Code :
- extern "C" typedef void fct_t(T*,const T*);
- fct_t* myClass<myStruct>::fct_ptr= fct;
|
Je pense que le 'extern "C"' est nécessaire, car un appel de fonction C ne suit pas les mêmes règles qu'en C++.
Le typedef devrait même être dans la classe:
Code :
- template <class T> class myClass{
- public:
- extern "C" typedef void fct_t(T*,const T*);
- static fct_t* fct_ptr;
- };
- myClass<myStruct>::fct_t* myClass<myStruct>::fct_ptr= fct;
|
Mais ça ne fait pas bon ménage avec le extern...
A noter qu'on peut faire des références de fonctions.
Kristoph a écrit a écrit :
Mon C++ est un peu rouillé sur cette partie, mais :, c'est bien le fait que p soit une constante, pointant sur un objet de type mystruct qui lui ne l'est pas ?
|
C'est l'inverse: pointeur variable, sur un mystruct considérée non modifiable.
---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone