Having worked with GObject extensively, including through PyGObject, I can say the experience is infinitely better than trying to make C++ interoperate with e.g. Python.
(This coming from someone writing C++ since 2002)
(This coming from someone writing C++ since 2002)
Have you tried SWIG?