错误:二进制表达式 std::map[Callback] 的无效操作数

问题描述

我的代码

// MyTemplate.h
template <class T>
class MyTemplate {
    typedef void (T::*CbMethod)();
    typedef std::map< CbMethod,std::string> FMap;

    
    FMap myMap;
    void function(CbMethod para) {
       CbMethod m = para;
       myMap[m] = "my name"; // error here 
    }

它给出了这个错误

错误:二进制表达式的操作数无效('void (MyListener::*const)()' 和 'void (MyListener::*const)()')

编辑

使用的代码

class Listener {
   void start() {
     MyTemplate *var = new MyTemplate < Listener >(this);
     var->function(&Listener::ready);
   }
   
   void ready() {
    // do something
   }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)