我有一个棘手的语法错误,我找不出来。我想运行一个函数委托,其中上下文是一个指向对象的指针。语法错误:使用指向对象的指针调用成员函数指针
语法错误:
((object)->*(ptrToMember)) // the compiler doesn't like the ->*
Where
object
is of the typeComponent*
And
ptrToMember
is of the typevoid (Component::*EventCallback)()
下面是一个语法错误代码:
typedef void (Component::*EventCallback)();
...
std::weak_ptr<Component> wc(mySharedPtr);
EventCallback ec = &Component::run;
((wc.lock())->*(ec))(); // syntax error
(wc.lock()->(*ec))(); // simpler version but still syntax error
// This is ok, but is there any significant time or memory involved in this reference object creation?
Component& wcc = *wc.lock();
(wcc.*ec)();
太懒了搜索这个的副本所以在这里'(object - > * ptrToMember)()' –
哇,这么多冗余括号! –