Dag Sverre Seljebotn wrote: > Stefan Behnel wrote: >> Dag Sverre Seljebotn wrote: >>> Stefan Behnel wrote: >>>> Dag Sverre Seljebotn wrote: >>>>> Robert Bradshaw wrote: >>>>>> I am also for supporting only a subset of what >>>>>> is possible--if one really needs crazy stuff like differently >>>>>> implemented prefix/postfix decrements and -> vs (*). one can code in C >>>>>> ++ or use clever macros. (Would we need to expose ++, a.k.a >>>>>> "__next__" for STL iterators?) >>>>> Yes, you need ++/-- for std::list<T>::iterator, which doesn't accept any >>>>> form of += >>>> Am I missing something here? Why isn't the for-loop syntax enough for C++ >>>> iterators? >>> Who's saying that you always want to iterate through all elements from >>> beginning to end in one go? >> Well, it's the most common case, at least. For the rest, there's reversed() >> and islice(), which we could define (and optimise) on C++ iterators. Maybe >> just our own version (as we might have to fix up the semantics), such as >> "cython.cppitertools.islice()". Although overriding the standard function >> might make life a lot easier for users. >> >> I (basically) never used C++, so I may not be aware of all implications, >> but I would prefer not reinventing stuff that Python already has, just >> because we are dealing with a different 'backend'. The fewer things we need >> to add to the language, the more seamlessly the C++ integration will become. >> >> >>> But yes, one could use the for-loop syntax for that specific case. >>> >>> (However myself I'm in favor of even getting the most basic things >>> working before adding support in higher-level constructs.) >> But isn't the for-in-loop the most basic thing that you could get to work >> for iterators? (at least from a Python POV...) > > The solution you scetch sounds to me like adding support for the Python > "os" module to Cython :-) And we don't do that, we use getattr/etc. > etc., because then we support all the other modules and usecases as well. > > Ahh; the missing piece: Iterators are nothing special in C++. There's > absolutely *no* concept of an iterator in the language. It's just a set > of conventions. > > So that's why I propose focusing on just getting the very basic > interfacing of the languages done, and get it all supported instead of > just STL.
Critical piece: I believe myself that this basic support will be about the same amount of work as explicit support for STL. It could of course make good sense otherwise. -- Dag Sverre _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
