Dag Sverre Seljebotn wrote:
ctypedef fused_type(float, double) speed_t
ctypedef fused_type(float, double) acceleration_t
then you get 4 specializations.
ctypedef speed_t acceleration_t
I guess only 2 specializations.
Treating the typedefs in this way is slightly fishy of course.
Indeed. This whole business seems rather too implicit to
me. I think I'd rather have explicit type parameters in
some form. Maybe
cdef func2[floating F](F x, F y):
# 2 specialisations
cdef func4[floating F, floating G](F x, G y):
# 4 specialisations
This also makes it clear how to refer to particular
specialisations: func2[float] or func4[float, double].
Pointers are handled in a natural way:
cdef funcfp[floating F](F x, F *y):
# 2 specialisations
It also extends naturally to fused types used in other
contexts:
cdef struct Vector[floating F]:
F x, y, z
--
Greg
_______________________________________________
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel