Bonjour, le code suivant pose un problème avec Visual C++ service pack
5. Est-ce normal du point de vue C++ où est-ce un problème lié au
compilateur ?
(l'erreur est une impossibilité de caster void (Fille::*)(void) en void
(Mere::*)(void) de façon implicite (type sans point commums d'après le
compilo).
Cordialement,
Mathieu
#include <map>
class Mere
{
public:
std::map<int, void (Mere::*)(void)> m_CallBackMap;
void EnregistreCallBack(int index, void (Mere::*pCallBack)(void));
void ExecuterCallBack(int index);
};
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Thomas Parle
"Mathieu Peyréga" a écrit dans le message de news:
Bonjour, le code suivant pose un problème avec Visual C++ service pack 5. Est-ce normal du point de vue C++ où est-ce un problème lié au compilateur ? (l'erreur est une impossibilité de caster void (Fille::*)(void) en void (Mere::*)(void) de façon implicite (type sans point commums d'après le compilo).
Bonjour, sans lire la suite du code, il faut noter que (Fille::*)(void) et (Mere::*)(void) sont deux types bien différents, chacun désignant un pointeur vers une fonction sans paramètres des classes Fille et Mere respectivement. D'où l'impossibilité de cast 'explicite/propre' entre ces types. C'est donc 'normal' du point de vue C++.
"Mathieu Peyréga" <peyrega@netcourrier.nospam.com> a écrit dans le message
de news: 3FDE397D.1040001@netcourrier.nospam.com...
Bonjour, le code suivant pose un problème avec Visual C++ service pack
5. Est-ce normal du point de vue C++ où est-ce un problème lié au
compilateur ?
(l'erreur est une impossibilité de caster void (Fille::*)(void) en void
(Mere::*)(void) de façon implicite (type sans point commums d'après le
compilo).
Bonjour,
sans lire la suite du code, il faut noter que (Fille::*)(void) et
(Mere::*)(void) sont deux types bien différents, chacun désignant un
pointeur vers une fonction sans paramètres des classes Fille et Mere
respectivement. D'où l'impossibilité de cast 'explicite/propre' entre ces
types. C'est donc 'normal' du point de vue C++.
"Mathieu Peyréga" a écrit dans le message de news:
Bonjour, le code suivant pose un problème avec Visual C++ service pack 5. Est-ce normal du point de vue C++ où est-ce un problème lié au compilateur ? (l'erreur est une impossibilité de caster void (Fille::*)(void) en void (Mere::*)(void) de façon implicite (type sans point commums d'après le compilo).
Bonjour, sans lire la suite du code, il faut noter que (Fille::*)(void) et (Mere::*)(void) sont deux types bien différents, chacun désignant un pointeur vers une fonction sans paramètres des classes Fille et Mere respectivement. D'où l'impossibilité de cast 'explicite/propre' entre ces types. C'est donc 'normal' du point de vue C++.