从列表中删除回调函数
Remove callback function from list?
好的,我有一个回调列表,回调定义如下:
typedef std::function<void(Event*)> Callback;
现在,如果我尝试通过以下方式从该列表中删除对象
callbackBindings[index].remove(callback);
我得到
错误100 错误 C2248:"std::function<_Fty>::运算符 ==":无法访问类"std::function<_Fty>中声明的私有成员 D:\Program\Development\Visual Studio Ultimate 2012\VC\include\list 1592 1 D-Tris
如何从该列表中删除元素?
PS:回调绑定看起来像这样:
static std::unordered_map<std::type_index, std::list<Callback>> callbackBindings;
不能比较std::function
对象是否相等。您必须通过其他方式删除它们,例如通过索引或迭代器(您必须在保存回调时存储)或通过关联容器中的映射键。
(例如,假设您插入到本地指定为 [](Event*){}
的回调中。没有机制或逻辑来判断任何两个这样的表达式是否应该被视为"相等"。
相关文章:
- 正在为Xtensa simcall函数编写回调函数
- 如何在C++中使用非静态成员函数作为回调函数
- 从不同的 cpp 调用回调函数会导致bad_function_call
- 如果 C 函数仍然可以间接执行(通过回调函数),那么将它声明为静态函数是否是一种不好的做法?
- C 回调函数在对象 pascal 上崩溃
- 类 Referention 中C++回调函数引用非静态函数
- CURLOPT_INTERLEAVEFUNCTION回调函数始终接收 nullptr 作为用户数据指针
- 动态链接库中C++回调函数
- 我想制作设置鼠标回调函数,以便在仍然按下鼠标左键时连续传递坐标
- 使用回调函数从构造函数调用虚拟/派生方法的替代方法?
- 我可以使用谷歌 v8 在回调函数中获取 JavaScript 函数C++源文本吗?
- 重写另一个方法 [C++] 使用的超类回调函数
- 是否可以影响 C++ 中回调函数的局部变量?
- C++ Qt5 中带有 pigpio 库的回调函数
- 在定时器回调函数中使用 Sleep() 会导致C++出现问题吗?
- C++在赋值或回调函数时重载模板
- 如何用不同的参数类型和数字回调函数
- 如何为Python Swigged C++对象创建和分配回调函数
- 用回调函数替换C++正则表达式
- C++带有回调函数的模板类