【发布时间】:2016-12-11 07:26:46
【问题描述】:
我正在使用 mbed 库并希望将成员函数附加到 Ticker(定期调用回调函数),它也是成员。我的类可能有多个实例,我希望每个实例都能够管理自己的 Ticker 并允许回调函数处理其各自的数据。
代码:
* 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);
}
这给了我invalid use of incomplete type 'class mbed::Callback<MyClass>'
为什么成员函数指针的包装器需要完整的 MyClass?我是否缺少基本的东西,或者过于依赖Callback 类的实现?
【问题讨论】:
标签: templates g++ member-function-pointers incomplete-type mbed