c++ - Gtkmm 'no matching function for call' 错误

标签 c++ function callback gtkmm signal-handling

我是初学者,正在按照官方文档学习 Gtkmm。

但是这个例子: https://developer.gnome.org/gtkmm-tutorial/stable/sec-menus-examples.html.en#menu-example-main

不工作,我收到这些错误:

examplewindow.cc: In constructor ‘ExampleWindow::ExampleWindow()’:
examplewindow.cc:18:67: error: no matching function for call to 
‘Gio::SimpleActionGroup::add_action(const char [12], 
sigc::bound_mem_functor0<void, ExampleWindow>)’
sigc::mem_fun(*this, &ExampleWindow::on_menu_file_new_generic));
                                                               ^

上面的错误针对的是这段代码:

refActionGroup->add_action("newstandard",
sigc::mem_fun(*this, &ExampleWindow::on_menu_file_new_generic));

但是“on_menu_file_new_generic”函数确实存在。那么如果回调函数确实存在,那怎么会说“没有匹配的函数”呢?

有什么帮助吗?

最佳答案

这个错误是因为旧版本的 glibmm 库。我当前的glibmm版本是2.37.4,不支持这种方式。

这个重载的 add_action() 方法首次出现在 glibmm 2.37.6 中,所以为了克服这个错误,我需要安装更新版本的 glibmm。

希望其他人也能解决他们的错误。

关于c++ - Gtkmm 'no matching function for call' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24570676/

相关文章:

jquery - 如何创建无需选择器即可工作的 jQuery 函数?

python - 通过字符串名称执行函数

c++ - 删除指向指针的 vector 指针时出错

c++ - libstdc++ : DSO missing from command line

C++ : const reference to local object

java - 如何在私有(private)类中调用与另一个函数名称相同的函数?

javascript - 如何在回调中访问正确的“this”?

c++ - 使用 Python 和 C++ 进行实时处理和回调

PHPUnit - 如何测试回调是否被调用?

c++ - 为什么 Prefix Increment Overload 返回的是 Type 而不是 Type?