Alternative 2 is used in gtkmm methods that have
previously returned a Cairo::RefPtr<Cairo::Surface>.
Alternative 1 is more like how subclasses of GObject are
wrapped. The wrap() functions in glibmm and gtkmm return a
nullptr if they are given a nullptr to wrap. I would recommend
alternative 1 also for cairomm objects. Other opinions? I
suppose that there has been a reason for choosing alternative 2.