#include struct Foo { int bar; }; namespace Gtk { class Widget; } void some_method() { // custom copyable Glib::Value value_foo; // custom pointer Glib::Value value_foo_pointer; Glib::Value value_foo_const_pointer; // Glib::Object pointer Glib::Value value_widget_pointer; Glib::Value value_widget_const_pointer; } // Glib::Object RefPtr<> // template Glib::Value< Glib::RefPtr >; // template Glib::Value< Glib::RefPtr >;