Sorry for not getting back sooner... responses below. On Mon, Jul 20, 2015 at 2:06 PM, Ian Henriksen <insertinterestingnameh...@gmail.com> wrote: > Hi all, > I've spent a little time working on adding support for non-type > template parameters. In doing this, it has been very easy to add > support for doing something like the following: > > cdef extern from "add_const.hpp" nogil: > int myfunc1[i](int) > def test(): > print myfunc1[2](a) > > The downside of this is that it does not let the Cython compiler > distinguish between different kinds of template parameters. > > Stricter checking could be added using a syntax like this: > > cdef extern from "add_const.hpp" nogil: > int myfunc1[int i](int) > def test(): > print myfunc1[2](a) > > The downsides here are that the syntax doesn't really match the > existing template syntax. It will also complicate the Cython codebase > since we'll have to go to greater lengths to allow or disallow all the > different special cases for templates. > > Which version would be preferable?
I think I'd prefer the [int i] syntax. Hopefully it shouldn't complicate things too much. > On a similar note, for variadic templates, would we prefer something > like > > cdef extern from "my_variadic.hpp" nogil: > T myfunc2[T,...](T, ...) > > or something like: > > cdef extern from "my_variadic.hpp" nogil: > T myfunc2[T, Types...](T, Types... args) > > Again, the latter syntax is more explicit, but it will require much more > complicated code in Cython. It also doesn't match the existing syntax > very well. The former syntax matches the existing syntax for templates > better, but will make it hard for Cython to raise errors early on in > compilation. Hmm... this is a tougher call. Let's go with the former for now. > I'd greatly appreciate any input on the best syntax for either use-case. > > Regards, > > -Ian Henriksen > > _______________________________________________ > cython-devel mailing list > cython-devel@python.org > https://mail.python.org/mailman/listinfo/cython-devel > _______________________________________________ cython-devel mailing list cython-devel@python.org https://mail.python.org/mailman/listinfo/cython-devel