c++ - 为什么会出现编译错误, "make_managed"不是 'Gtk' 的成员?

标签 c++ compiler-errors gtkmm

我正在尝试重现示例 - https://developer.gnome.org/gtkmm-tutorial/stable/sec-treeview-examples.html.en#treeview-dnd-example

编译时错误:

"make_managed" is not a member of 'Gtk' in the file treeview_withpopup.cc at the line auto item = Gtk::make_managed("_Edit", true);

Netbeans IDE 也在同一行显示错误

"Unable to resolve the identifier make_managed"

我已经从站点复制了代码,并且 gtkmm.h 包含在头文件中。

我还没有发现有人在 Stackoverflow 上问过这样的问题! 为什么我会收到此编译错误?

请帮忙。

最佳答案

Gtk::make_managedgtkmm-3.0/gtkmm/object.h 中定义(参见 link)。

我已经遇到了同样的错误。然后我检查了文件 object.h 但没有 make_managed 函数。我不知道为什么。我刚从 rpm packge 安装(我使用的操作系统是 Fedora 23)。

我的解决方案:

我添加 code /usr/include/gtkmm-3.0/gtkmm/object 中的 make_managed:

template<class T, class... T_Args>
auto make_managed(T_Args&&... args) -> T* // Note: Edited to add return type here!
{
  return manage(new T(std::forward<T_Args>(args)...));
}

关于c++ - 为什么会出现编译错误, "make_managed"不是 'Gtk' 的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53334845/

相关文章:

OpenGL + gtkglextmm + 林间空地

c++ - Qt 包含不同目录中的文件

c# - 将 Platform::String 转换为 std::string

c++ - 调试 cgi c++ 应用程序

c# - 在分配它的 if-else 语句中使用未分配的局部变量

c++ - 在 C++ gtk::drawarea 中:如何刷新图像

c++ - 创建引用与创建对象之间的主要区别是什么?

pointers - Ifort : move_alloc() on attribute of a Pointer, intent(in) 触发错误

react-native - 无法编译 react native 项目 - 无法解析所需文件

gtk - 如何转置开罗上下文或更改轴的方向?