RefPtr-smartpekaren

Glib::RefPtr is a smartpointer. Specifically, it is a reference-counting smartpointer. You might be familiar with std::unique_ptr<> and std::shared_ptr<>, which are also smartpointers. In gtkmm-4.0 Glib::RefPtr<> is an alias for std::shared_ptr<>, which is reference-counting. Glib::RefPtr<> was introduced long before there was a reference-counting smartpointer in the C++ Standard Library.

If you make your own Glib::ObjectBase-derived classes with create() methods that return a Glib::RefPtr, you must use Glib::make_refptr_for_instance() in your create() methods. This function creates a std::shared_ptr with a special deleter, which handles the reference-count for the wrapped C object.

Referens

En smartpekare agerar i stort sett som en vanlig pekare. Här är några exempel.