Breaks c++ examples.
../src/examples/elementary/slider_cxx_example.cc:79:8: error: ‘struct efl::ui::Slider’ has no member named ‘changed_event_cb_add’
Other than that, everything seems fine and I am willing to approve this.
Add this patch:.
The eo_cxx wrappers don't use inheritance in traditional ways, since the traditional aspects of OOP are handled by C under the hood.
Performing inheritance in C++ too (at least in the traditional virtual way) would simply double the OOP overhead (two virtual table lookups).
So we opted for a "thin layer" using only static inheritance.
Now thinking of it, I think cast would be a better name to downcast.
And having a version of it that works with non-owning pointers would be desirable too.