On 3 July 2012 05:58, Stefan Behnel <stefan...@behnel.de> wrote: > Hi, > > the discussion on allowing for automatic user provided ways to coerce > between Python types and C++ types got me thinking that this might hide a > rather interesting general feature: methods for low-level types. I faintly > remember that this idea has come up in our discussions before, but here's a > draft CEP for it: > > http://wiki.cython.org/enhancements/ctypemethods
I see this CEP also mentions overriding C++ methods. But I think if it doesn't support virtual methods, then overriding base class methods by calling another function is pretty horrible. > Basically, it would allow writing this in .pxd files: > > """ > cdef extern from "...": > cdef cppclass MyClass: > cdef int cython_method_here(self): > return 1 > > ctypedef double mydouble: > cdef double cython_method_here(self): > return self ** 2 > > cdef struct mystruct: > int x, y > > cdef int cython_method_here(self): > return self.x + self.y > > cdef union myunion: > int a > double b > > cdef int cython_method_here(self): > return self.a if ImSureImAnInt else <int>self.b > """ > > The C code for these methods would then be generated into the modules that > use these types, similar to what we allow with "__getbuffer__()". Calls > would be direct function calls as with "final" methods. > > I think it fits into what's there in a very natural way. > > Stefan > _______________________________________________ > cython-devel mailing list > cython-devel@python.org > http://mail.python.org/mailman/listinfo/cython-devel _______________________________________________ cython-devel mailing list cython-devel@python.org http://mail.python.org/mailman/listinfo/cython-devel