J'utilise la bibliothèque mbed et je souhaite attacher une fonction membre à un Ticker
(appelle une fonction de rappel à intervalle régulier) qui est également un membre. Je peux avoir plusieurs instances de ma classe et j'aimerais que chacune puisse gérer ses propres Ticker
et permettre à la fonction de rappel de traiter ses données respectives.Constructeur de modèle correct pour MBED Rappel de la fonction membre
code:
* header */
class MyClass {
uint16_t time;
Ticker ticker;
void Init();
void SendMessage();
};
/* source */
void MyClass:: SendMessage() {
}
void MyClass::Init() {
ticker.attach(Callback<MyClass>(this, &MyClass::SendMessage), time);
}
Cela me donne invalid use of incomplete type 'class mbed::Callback<MyClass>'
Pourquoi ne MyClass besoin d'être complet pour une enveloppe pour un pointeur de fonction membre? Ai-je manqué quelque chose de fondamental, ou est-il trop dépendant de l'implémentation de la classe Callback
?
compilé et testé. Et clarifié le titre de la question, car il ne s'agissait pas réellement d'un problème de type incomplet. – ptpaterson