我想检测信号/插槽系统中信号的重复connect
,例如,执行此操作时:
button.connect("onClicked", [this](){ do_something(); });
button.connect("onClicked", [this](){ do_something(); });
当slot是函数指针,(instance_ptr,memfun_ptr)对,或者甚至是定义了operator==()
的仿函数时,比较插槽是可能的,因此可以检测到重复的connect
,但是lambda对象无法比较。这个问题有什么变通方法?我正考虑给插槽命名,并根据该名称比较插槽:
button.connect("onClicked", "handleConnect", [this](){ do_something(); });
但也许我应该简单地禁止lambda仿函数作为插槽?