Hi there,
 
> SP_TYPE() macros should be reimplemented as dynamic_cast so that they generate compile-time errors when something not derived from SPObject is passed.
 
I checked that and it is currently impossible without changing a huge amount of code. Some parts use these GSLists and they store void-pointers. Thousands of SP_TYPE-lines would fail compilation. I'd suggest doing this change later.
 
> cppify/src/widgets/rect-toolbar.cpp:117:52: error: cannot dynamic_cast 'items->_GSList::data' (of type 'const gpointer {aka void* const}') to type 'class SPRect*' (source is not a pointer to class)
 
Regards,
Markus